- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第二次上机实验报告
一.实验目的
1.?熟练掌握汇编语言程序设计的方法及上机步骤。
2.?掌握算术运算指令的应用。
3.?掌握子程序的设计方法。
4.?掌握DOS功能的调用方法。
二.实验仪器
586微机1台
三.实验内容
编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示。
编程要求与提示:
[1]从键盘输入两个十进制数(21736543),以二进制数形式存放在ADD1和ADD2为首址的存贮器单元,输入一个十进制数采用子程序形式。
[2]和以二进制数的形式存入SUM以下单元。
[3]将和送到屏幕显示采用子程序形式。
[4]实验步骤如下:
a.用全屏幕编辑软件建立源程序。
b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。
c.用link.exe连接程序对目标程序进行连接形成可执行文件。
d.用DEBUG对连接通过的可执行程序进行调试。
四.源程序
STACK SEGMENTSTACKSTACK
DW100HDUP(?)
TOP LABELWORD
STACK ENDS
DATA SEGMENT
FAKE DW0
KEYBUFFER DB100
DB?
DB100DUP(?)
BUF DB8DUP(?),$
ADD1 DW?
A1 DW?
ADD2 DW?
A2 DW?
SUM DW?
S1 DW?
STRING1 DBPLEASEinputdecimaldata:$
DATA ENDS
CODE SEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
LEASP,TOP
CALLINPUT1
CALLTRANS10TO16
MOVADD1,AX
MOVA1,DX
CALLDISPCR
CALLINPUT1
CALLTRANS10TO16
MOVADD2,AX
MOVA2,DX
CALLDISPCR
MOVSUM,AX
MOVS1,DX
ADDAX,ADD1
ADCDX,A1
MOVSUM,AX
MOVS1,DX
CALLFARPTRADISP
MOVAH,4CH
MOVAL,0
INT21H
INPUT1 PROCNEAR
LEADX,STRING1
MOVAH,09H
INT21H
MOVAH,0AH
LEADX,KEYBUFFER
INT21H
LEASI,KEYBUFFER+1
ret
INPUT1ENDP
TRANS10TO16 PROCNEAR
PUSHCX
PUSHSI;PUSHBX???
XORAX,AX
XORDX,DX
XORCX,CX
MOVCL,[SI]
INCSI
MOVAL,[SI]
INCSI
SUBAL,30H
DECCX
JCXZTRANSF2
MOVBX,10
TRANSF1: CALLMULAXI
PUSHDX
JOTRANSF_ERR
MOVDL,[SI]
INCSI
SUBDL,30H
ADDAL,DL
ADCAH,0
JCTRANSF_ERR
POPDX
LOOPTRANSF1
MOVBX,0
TRANSF2: JMPTRANSF_OK
TRANSF_ERR: MOVBX,-1
TRANSF_OK: POPSI
POPCX
ret
TRANS10TO16ENDP
MULAXI PROCNEAR
PUSHCX
PUSHAX
MOVAX,DX
MULBX
MOVCX,AX
POPAX ;
XORDX,DX
MULBX
PUSHAX
MOVAX,CX
ADDAL,DL
ADCAH,DH
MOVDX,AX
POPAX
POPCX
ret
MULAXIENDP
DISPCR PROCNEAR
PUSHAX
PUSHDX
MOVAH,2
MOVDL,0AH
INT21H
MOVAH,2
MOVDL,0DH
INT21H
POPDX
POPAX
ret
DISPCRENDP
ADISP PROCFAR
PUSHAX
PUSHCX
PUSHDX
PUSHBX
LEASI,BUF+7
MOVBX,10000
DIVBX
PUSHAX
MOVAX,DX
XORDX,DX
MOVBX,10
MOVCX,4
L1: DIVBX
文档评论(0)