微机原理汇编语言上机实验报告.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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)

文档爱好者 + 关注
实名认证
文档贡献者

文档爱好者~

1亿VIP精品文档

相关文档