南京理工大学微机实验报告文档格式.docx
《南京理工大学微机实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《南京理工大学微机实验报告文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAX,TOP
MOVSP,AX
LEASI,DATA1
MOVBX,0
MOVCX,N
CALLDISPL
DISP'
+'
LEASI,DATA2
='
LEADI,DATA1
CALLADDA
CMPDL,0
JZNEXT
1'
NEXT:
DISP0DH
DISP0AH
MOVAX,4C00H
DISPLPROC
DS1:
MOVAH,02H
MOVDL,[SI+BX]
INCBX
LOOPDS1
RET
DISPLENDP
ADDAPROC
PUSHCX
AD1:
SUBBYTEPTR[SI+BX],30H
SUBBYTEPTR[DI+BX],30H
LOOPAD1
POPCX
MOVBX,N-1
CLC
AD2:
MOVAL,[SI+BX]
ADCAL,[DI+BX]
AAA
MOV[DI+BX],AL
DECBX
LOOPAD2
MOVDL,0
JNCAD3
MOVDL,1
AD3:
ADDBYTEPTR[DI+BX],30H
LOOPAD3
ADDAENDP
CODEENDS
ENDSTART
结果截图:
2、上机步骤,调试方法:
1、写代码完成功能要求,文件格式为.asm文件(如21si.asm),将文件放入带汇编工具的文件夹中,即含有汇编工具(MASM.EXE)和链接工具(LINK.EXE)的文件夹。
2、将文件用TC.EXE打开,保存,在File中选择Osshell,启动命令行,进入上述文件夹,输入masm21si回车后编译产生21si.obj文件,再输入link21si回车后链接产生21si.exe文件,最后输入21si,回车后运行即可
实验2.2分支程序设计
思考题
1、计算百分比程序:
DISP1MACRO
ADDAL,30H
DISPAL
0'
%'
MOVDL,0DH
MOVDL,0AH
ENDM
GRADEDW95H,60H,75H,92H,71H,86H,54H,89H,83H,76H
NEQU($-GRADE)/2
ORG30H
S5DW0
S6DW0
S7DW0
S8DW0
S9DW0
S10DW0
STADB20DUP(0)
MAINPROCFAR
STACK
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATA
LEABX,GRADE
COMPARE:
MOVAX,[BX]
CMPAX,60H
JLFIVE
CMPAX,70H
JLSIX
CMPAX,80H
JLSEVEN
CMPAX,90H
JLEIGHT
CMPAX,100H
JNENINE
INCS10
JMPCHA
NINE:
INCS9
EIGHT:
INCS8
SEVEN:
INCS7
SIX:
INCS6
FIVE:
INCS5
CHA:
ADDBX,2
LOOPCOMPARE
A'
MOVAX,S10
DISP1
B'
MOVAX,S9
C'
MOVAX,S8
D'
MOVAX,S7
E'
MOVAX,S6
F'
MOVAX,S5
MAINENDP
ENDSTART
截图:
2、计算平均成绩程序:
MOVDX,0
MOVDI,N
LEASI,GRADE
L1:
MOVBX,[SI]
PUSHBX
ANDBL,0F0H
MOVCL,4
SHRBL,CL
ADDDH,BL
POPBX
ANDBL,0FH
ADDDL,BL
INCSI
DECDI
JNZL1
MOVAL,DH
MOVAH,0
MOVCL,10
DIVCL
MOVBH,AL
MOVAL,AH
MULCL
ADDDL,AL
MOVAL,DL
MOVBL,AL
ADDBH,30H
MOVDL,BH
MOVAH,2
ADDBL,30H
MOVDL,BL
实验2.3循环程序设计
1、键盘输入,显示成绩和名次:
GRADEDW10DUP(0)
COUNTEQU($-GRADE)/2
ORG20H
RANKDW10DUP(?
HHDB10,13,'
$'
MEG1DB'
PLEASEINPUT10GRADE'
10,13,'
MEG2DB'
GRADE'
MEG3DB'
RANK'
;
STADB20DUP(20H)
ASSUMECS:
CODE,SS:
STACK,DS:
MOVSP,TOP
LEADX,MEG1
MOVAH,9
AGAIN:
MOVAH,1
CMPAL,'
#'
JZEXIT
'
JZL1
MOV[SI],AL
JMPAGAIN
L1:
MOVAL,[SI-2]
MOVAH,[SI-1]
MOV[SI-2],AH
MOV[SI-1],AL
EXIT:
MOVDI,COUNT
LOOP1:
MOVAX,GRADE[BX]
MOVCX,COUNT
NEXT:
MOVDX,[SI]
CMPAX,DX
JANO_COUNT
INCWORDPTRRANK[BX]
NO_COUNT:
ADDSI,2
LOOPNEXT
ADDRANK[BX],30H
JNZLOOP1
LEADX,HH
LEADX,MEG2
MOVCX,10
LOOP2:
MOVDL,[SI+1]
MOVDL,[SI]
LOOPLOOP2
MOVAH,9
LEADX,MEG3
LEASI,RANK
MOVCX,20
LOOP3:
MOVDL,[SI]
CM