微机原理大作业.docx
- 文档编号:29506832
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:26
- 大小:231.61KB
微机原理大作业.docx
《微机原理大作业.docx》由会员分享,可在线阅读,更多相关《微机原理大作业.docx(26页珍藏版)》请在冰豆网上搜索。
微机原理大作业
第一次上机实验
一、实验目的
1.熟练掌握8086/8088的各种寻址方式及应用。
2.掌握DEBUG调试程序中的一些常用命令的使用方法,为以后的实验打下基础。
二、实验仪器
586微机1台
三、实验内容
1.关于数据的寻址方式练习
8086/8088提供多种方式实现操作数寻址,大体可分为7种:
a.立即寻址
b.寄存器寻址
c.直接寻址
d.寄存器间接寻址
e.寄存器相对寻址
f.基址变址寻址
g.基址变址且相对寻址
四、实验数据及结果
指令
SRC寻址方式
SRC的地址
AX推算值
AX实际值
MOVAX,CX
寄存器寻址
0005H
0005H
MOVAX,500H
立即寻址
0500H
0500H
MOVAX,TABLE
直接寻址
15C5:
0004
0A5A4H
0A5A4H
MOVAX,ES:
[BX]
寄存器间接寻址
15C6:
0004
0C5C4H
0C5C4H
MOVAX,[BX+05H]
寄存器相对寻址
15C5:
0009
0AAA9H
0AAA9H
MOVAX,SS:
[BX]+03H
寄存器相对寻址
15C3:
0007
0B8B7H
0B8B7H
MOVAX,TABLE[BX]
寄存器相对寻址
15C5:
0008
0A9A8H
0A9A8H
MOVAX,07H[BX]
寄存器相对寻址
15C5:
000B
0ACABH
0ACABH
MOVAX,[BP]
寄存器相对寻址
15C3:
0003
0B4B3H
0B4B3H
MOVAX,TABLE[BP]
寄存器相对寻址
15C5:
0007
0A8A7H
0A8A7H
MOVAX,08H[BP]
寄存器相对寻址
15C3:
0008
0BCBBH
0BCBBH
MOVAX,[BP+06H]
寄存器相对寻址
15C3:
0009
0BAB9H
0BAB9H
MOVAX,DS:
[BP+03H]
寄存器相对寻址
15C5:
0006
0A7A6H
0A7A6H
MOVAX,[BP]+05H
寄存器相对寻址
15C3:
0008
0B9B8H
0B9B8H
MOVAX,ES:
[SI+03H]
寄存器相对寻址
15C6:
0005
0C6C5H
0C6C5H
MOVAX,[DI+06H]
寄存器相对寻址
15C5:
0007
0A8A7H
0A8A7H
MOVAX,[DI]+05H
寄存器相对寻址
15C5:
0006
0A7A6H
0A7A6H
MOVAX,TABLE[SI]
寄存器相对寻址
15C5:
0006
0A7A6H
0A7A6H
MOVAX,[SI]
寄存器间接寻址
15C5:
0002
0A3A2H
0A3A2H
MOVAX,TABLE[DI]
寄存器相对寻址
15C5:
0005
0A6A5H
0A6A5H
MOVAX,[SI]+05H
寄存器相对寻址
15C5:
0007
0A8A7H
0A8A7H
MOVAX,[BX][DI+01H]
基址变址且相对寻址
15C5:
0006
0A7A6H
0A7A6H
MOVAX,[BX][SI]+03H
基址变址且相对寻址
15C5:
0009
0AAA9H
0AAA9H
MOVAX,TABLE[BX][SI]
基址变址且相对寻址
15C5:
000A
0ABAAH
0ABAAH
MOVAX,ES:
[BX][DI]
基址变址寻址
15C6:
0005
0C6C5H
0C6C5H
MOVAX,[BP][DI+02H]
基址变址且相对寻址
15C3:
0006
0B7B6H
0B7B6H
MOVAX,TABLE[BP][DI]
基址变址且相对寻址
15C6:
0008
0A9A8H
0A9A8H
MOVAX,ES:
[BP][SI]
基址变址寻址
15C6:
0005
0C6C5H
0C6C5H
MOVAX,[BP][SI+05H]
基址变址且相对寻址
15C3:
000A
0BBBAH
0BBBAH
MOVAX,03H[BP][DI]
基址变址且相对寻址
15C3:
0007
0B8B7H
0B8B7H
MOVAX,[BP][SI]
基址变址寻址
15C3:
0005
0B6B5H
0B6B5H
MOVAX,[BP+02H][DI+03H]
基址变址且相对寻址
15C3:
0009
0BAB9H
0BAB9H
MOVAX,TABLE[BP+02H][DI+03H]
基址变址且相对寻址
15C5:
000D
0AEADH
0AEADH
第二次上机实验
一、实验目的
1. 熟练掌握汇编语言程序设计的方法及上机步骤。
2. 掌握算术运算中,十进制数调整指令的应用。
3. 掌握子程序的设计方法。
4. 掌握DOS功能的调用方法。
二、实验仪器
586微机1台
三、实验内容
1.编写求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。
编程要求与提示:
[1]两个加数均以组合十进制数形式存放在ADD1和ADD2为首址的存贮器单元。
[2]和以组合十进制数的形式存入SUM以下单元。
[3]将和送到屏幕显示部分功能的实现采用子程序的形式。
[4]实验步骤如下:
a.用全屏幕编辑软件建立源程序。
b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。
c.用link.exe连接程序对目标程序进行连接形成可执行文件。
d.用DEBUG对连接通过的可执行程序进行调试。
2.有一个首地址为A的N字数组,请编写程序使该数组中的数按从大到小的次序排列。
编程要求及提示:
[1]参加排序的数据及个数由学生自己定义。
[2]要将排序前的数组和排序后的数组在屏幕上显示出来。
[3]实验步骤:
a.用全屏幕编辑软件建立源程序。
b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。
c.用link.exe连接程序对目标程序进行连接形成可执行文件。
d.用DEBUG对连接通过的可执行程序进行调试。
四、源程序及运行结果
1.源程序:
STACKSEGMENTSTACK'STACK'
DW100HDUP(?
)
STACKENDS
DATASEGMENT
ADD1DD12678532H
ADD2DD21736543H
SUMDD?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
LEASI,ADD1
LEADI,ADD2
LEABX,SUM
MOVAL,[SI]
ADDAL,[DI]
DAA
MOV[BX],AL
MOVAL,[SI+1]
ADCAL,[DI+1]
DAA
MOV[BX+1],AL
MOVAL,[SI+2]
ADCAL,[DI+2]
DAA
MOV[BX+2],AL
MOVAL,[SI+3]
ADCAL,[DI+3]
DAA
MOV[BX+3],AL
MOVDL,00
ADCDL,00
CALLDISPSUM
MOVAH,4CH
INT21H
DISPSUMPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHSI
MOVSI,4
PUSHDX
MOVCX,5
LAB:
PUSHCX
PUSHBX
MOVAL,DL
MOVBL,DL
MOVCL,4
SHRAL,CL
ADDAL,30H
MOVAH,02
MOVDL,AL
INT21H
ANDBL,0FH
ADDBL,30H
MOVAH,02
MOVDL,BL
INT21H
POPBX
POPCX
DECSI
MOVDL,[BX][SI]
LOOPLAB
POPDX
POPSI
POPCX
POPBX
POPAX
RET
DISPSUMENDP
CODEENDS
ENDSTART
运行结果:
2.源程序
STACKSEGMENTSTACK
DB256DUP(?
)
STACKENDS
DATASEGMENT
DATA1DW4031H,3859H,0245H,1111H,0A231H,0FFFFH
STRING1DB'Originalnumbers:
',0DH,0AH,'$'
STRING2DB'Thenumbersfromlargetosmall:
',0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
LEADX,STRING1
MOVAH,09H
INT21H
MOVCX,6
LEASI,DATA1
L1:
MOVAX,[SI]
ADDSI,2
CALLDISPAX
CALLDISPCR
LOOPL1
MOVCX,5
LEASI,DATA1
ADDSI,10
LP1:
PUSHCX
PUSHSI
LP2:
MOVAX,[SI]
CMPAX,[SI-2]
JBENOXCHG
XCHGAX,[SI-2]
MOV[SI],AX
NOXCHG:
DECSI
DECSI
LOOPLP2
POPSI
POPCX
LOOPLP1
LEADX,STRING2
MOVAH,09H
INT21H
MOVCX,6
LEASI,DATA1
L2:
MOVAX,[SI]
ADDSI,2
CALLDISPAX
CALLDISPCR
LOOPL2
MOVAH,4CH
INT21H
DISPALPROC
PUSHAX
PUSHCX
PUSHDX
PUSHAX
MOVCL,4
SHRAL,CL
CALLCHANG
MOVAH,02H
MOVDL,AL
INT21H
POPAX
ANDAX,0FH
CALLCHANG
MOVAH,02H
MOVDL,AL
INT21H
POPDX
POPCX
POPAX
RET
DISPALENDP
CHANGPROC
CMPAL,10
JNGECHANG1
ADDAL,7
CHANG1:
ADDAL,30H
RET
CHANGEND
DISPAXPROC
XCHGAL,AH
CALLDISPAL
XCHGAH,AL
CALLDISPAL
RET
DISPAXENDP
DISPCRPROC
PUSHAX
PUSHDX
MOVAH,2
MOVDL,0AH
INT21H
MOVAH,2
MOVDL,0DH
INT21H
POPDX
POPAX
RET
DISPCRENDP
CODEENDS
ENDSTART
运行结果:
第三次上机实验
一、实验目的
1.增强和提高汇编语言程序设计的能力,掌握模块化程序设计的方法.
2.熟练掌握DOS常用功能的调用方法.
二、实验仪器
586微机1台
三、实验内容
编写如下程序,并在机器上调试成功。
程序采用菜单式选择,可以接收用户从键盘输入的四个命令(1-4),各命令功能分别为:
(1)按下“1”键,完成字符串小写字母变成大写字母。
用户输入一由英文大小写字母或数字0-9组成的字符串(以回车结束),程序逐个检查字符串中各字符,将原串中小写字母变成大写字母,其他字符不变,并在屏幕上显示。
用户按任一键,重做,按ESC键,返回主菜单。
(2)按下“2”键,完成找最大值(二选一)。
a.接收用户输入的可显示字符串(以回车结束),程序将其中ASCII码值最大的字符显示出来;
b.接收用户输入若干个无符号8位数(以空格或逗号为分隔符,以回车结束),程序将其中最大的数显示出来。
用户按任一键,重做,按ESC键,返回主菜单。
(3)按下“3”键,完成排序(二选一)。
a.接收用户输入的可显示字符串,以回车结束。
程序按ASCII码值大小由大到小排序并输出显示;
b.接收用户输入若干个有符号8位数(以空格或逗号为分隔符,以回车结束),程序将其中最大的数显示出来。
用户按任一键,重做,按ESC键,返回主菜单。
(4)按下“4”键,结束程序运行,返回系统提示符。
四、源程序及运行结果
源程序:
DISPLMACROSTR
PUSHDX
PUSHAX
LEADX,STR
MOVAH,09H
INT21H
POPAX
POPDX
ENDM
ISCONTINUEMACROL
DISPS15,10,SMENU
MOVAH,08H
INT21H
CMPAL,1BH
JNEL
JMPMAIN
ENDM
CURSORMACROCURX,CURY
PUSHAX
PUSHBX
PUSHDX
MOVAH,02H
MOVDH,CURX
MOVDL,CURY
MOVBH,0
INT10H
POPDX
POPBX
POPAX
ENDM
DISPSMACROX,Y,STR
PUSHAX
PUSHBX
PUSHDX
MOVAH,02H
MOVBH,00H
MOVDH,X
MOVDL,Y
INT10H
LEADX,STR
MOVAH,09H
INT21H
POPDX
POPBX
POPAX
ENDM
SCROLLMACRON,ULR,ULC,LRR,LRC,ATT
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVAH,06H
MOVAL,N
MOVCH,ULR
MOVCL,ULC
MOVDH,LRR
MOVDL,LRC
MOVBH,ATT
INT10H
POPDX
POPCX
POPBX
POPAX
ENDM
PREPMACROT
LEASI,INBUF+1
LEADI,OUTBUF
SCROLL21,2,0,22,79,0FH
DISPS3,20,T
DISPS6,2,CAPION
DISPS8,2,INCAP
MOVAH,0AH
INT21H
MOVCH,0
MOVCL,[SI]
INCSI
ENDM
STACKSEGMENTSTACK'STACK'
DB100HDUP(?
)
TOPLABELWORD
STACKENDS
DATASEGMENT
BASEDWMAIN,LTC,FMV,SORTS,EXIT
WELCMDB'Welcometothisprogram!
$'
MMENUCDB'Pleaseinputthenumber!
$'
MMENU1DB'1-LowercaseLettersToCapitalLetters$'
MMENU2DB'2-FindTheMaximumfigure$'
MMENU3DB'3-Sort$'
MMENU4DB'4-Exit!
$'
SMENUDB'PressAnyKeyTorestart,Press"ESC"ToReturnToMainMenu!
$'
WROCAPDB'WRONG!
Youhavepress""key!
Pleaseinputanumberbetween1and4!
$'
CAPIONDB'PleaseInputYourStringsandEndWith"Enter"Key!
$'
INCAPDB'YourInputIs:
$'
INBUFDB100
DB?
DB100DUP(?
)
OUTCAPDB'MyOutputIs:
$'
OUTBUFDB100DUP(?
)
MAXCAPDB'ThecharofmaxASCIIis:
.$'
ERRINFDB'ERROR!
Pleasechecktheformatyouinput!
$'
TDINVDB'Invalidtimedata!
Inputagain!
$'
NODATCAPDB'Youhaveinputnothing!
$'
TIMEDB8DUP(':
'),12DUP('')
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
LEASP,TOP
LEADX,INBUF
CLC
MAIN:
SCROLL0,0,0,24,79,0
SCROLL25,0,0,24,79,50H
SCROLL21,2,0,22,79,0FH
DISPS8,20,MMENUC
DISPS10,20,MMENU1
DISPS12,20,MMENU2
DISPS14,20,MMENU3
DISPS16,20,MMENU4
ML:
CURSOR19,1DH
MOVAH,01H
INT21H
CMPAL,31H
JLERROR
CMPAL,35H
JGERROR
ANDAX,00FH
LEABX,BASE
SHLAL,1
ADDBX,AX
JMPWORDPTR[BX]
;CMPAL,'1'
;JELTC
;CMPAL,'2'
;JEFMV
;CMPAL,'3'
;JESORTS
;CMPAL,'4'
;JEEXIT
ERROR:
CMPAL,0DH
JEMCR
MOV[WROCAP+23],AL
MOV[WROCAP+24],''
JMPD
MCR:
MOVWORDPTR[WROCAP+23],'RC'
D:
DISPS20,5,WROCAP
JMPML
LTC:
CALLLLTOCL
ISCONTINUELTC
FMV:
CALLFMAXV
ISCONTINUEFMV
SORTS:
CALLSORT
ISCONTINUESORTS
EXIT:
SCROLL0,0,0,24,79,0
MOVAH,4CH
INT21H
LLTOCLPROC
REFLASHL:
PREPMMENU1
CMPCL,0
JEREFLASHL
LL1:
MOVAL,[SI]
CMPAL,'a'
JBMTOB;NOCHANGE
CMPAL,'z'
JAMTOB
SUBAL,20H;Convert
MTOB:
MOV[DI],AL
INCSI
INCDI
LOOPLL1
MOVBYTEPTR[DI],'$'
DISPS10,2,OUTCAP
DISPS10,17,OUTBUF
RET
LLTOCLENDP
FMAXVPROC
PUSHBX
REFLASHF:
PREPMMENU2
CMPCL,0
JEREFLASHF
MOVAL,0
FL1:
CMPAL,[SI]
JANEXT
MOVAL,[SI]
NEXT:
INCSI
LOOPFL1
MOV[MAXCAP+26],AL
DISPS10,2,MAXCAP
POPBX
RET
FMAXVENDP
SORTPROC
PREPMMENU3
DECCX
ADDSI,CX
MOVBYTEPTR[SI+1],'$'
LP1:
PUSHCX
PUSHSI
LP2:
MOVAL,[SI]
CMPAL,[SI-1]
JBENOXCHG
XCHGAL,[SI-1]
MOV[SI],AL
NOXCHG:
DECSI
LOOPLP2
POPSI
POPCX
LOOPLP1
DISPS10,2,OUTCAP
DISPS10,17,INBUF[2]
RET
SORTENDP
BCDASCPROCNEAR
PUSHBX
CBW
MOVBL,10
DIVBL
ADDAL,30H
MOVTIME[SI],AL
INCSI
ADDAH,30H
MOVTIME[SI],AH
INCSI
POPBX
RET
BCDASCENDP
CODEENDS
ENDSTART
运行结果:
按下“4”键后,返回系统提示符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 作业