微机原理上机汇编语言程序编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示.doc

上传人:聆听****声音 文档编号:506969 上传时间:2023-04-29 格式:DOC 页数:5 大小:40.50KB
下载 相关 举报
微机原理上机汇编语言程序编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示.doc_第1页
第1页 / 共5页
微机原理上机汇编语言程序编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示.doc_第2页
第2页 / 共5页
微机原理上机汇编语言程序编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示.doc_第3页
第3页 / 共5页
微机原理上机汇编语言程序编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示.doc_第4页
第4页 / 共5页
微机原理上机汇编语言程序编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理上机汇编语言程序编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示.doc

《微机原理上机汇编语言程序编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示.doc》由会员分享,可在线阅读,更多相关《微机原理上机汇编语言程序编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示.doc(5页珍藏版)》请在冰点文库上搜索。

微机原理上机汇编语言程序编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示.doc

上机作业二

一.实验目的

1. 熟练掌握汇编语言程序设计的方法及上机步骤。

2. 掌握算术运算指令的应用。

3. 掌握子程序的设计方法。

4. 掌握DOS功能的调用方法。

二.试验仪器

586微机一台

三.实验内容

编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示。

编程要求与提示:

[1]从键盘输入两个十进制数(如12678532与21736543),以二进制数形式存放在ADD1和ADD2为首址的存贮器单元,输入一个十进制数采用子程序形式。

[2]和以二进制数的形式存入SUM以下单元。

[3]将和送到屏幕显示采用子程序形式。

[4]实验步骤如下:

a.用全屏幕编辑软件建立源程序。

b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。

c.用link.exe连接程序对目标程序进行连接形成可执行文件。

d.用DEBUG对连接通过的可执行程序进行调试。

四.源程序

STACK SEGMENTSTACK'STACK'

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 DB'PLEASEinputdecimaldata:

$'

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

MOV[SI],DL

XORDL,DL

ADDBYTEPTR[SI],30H

DECSI

LOOPL1

CMPSI,OFFSETBUF

JCL2

POPAX

MOVCX,4

JMPL1

L2:

LEADX,BUF

MOVAH,09H

INT21H

POPBX

POPDX

POPCX

POPAX

retf

ADISPendp

CODE ENDS

ENDSTART

五、实验体会

实验中遇到的问题以及解决方法:

在这几次的编程实验中,我遇到了许多问题。

首先,在最开始的时候,无论怎么输入都显示:

‘masm’不是内部或外部命令,也不是可运行的程序或批处理文件。

后来发现把自己编写的asm文件放到E盘masm文件夹里就行了,之后的每一步实验按照要求一步一步做,就都能出来结果。

还有就是不懂得如何输出自己所得到的结果,于是先抄写课本上所给的程序,当出现自己想要的结果之后,再与同学讨论输出结果的语句,充分理解其内涵。

心得体会:

通过几次的上机实验课,我懂得了如何使用txt文档编写asm文件。

然后对其进行编译和连接。

当完成上述过程后,可以使用DEBUG功能来对程序进行调试,这样,就可以清楚地看到每一步运行时各个寄存器的状态。

同时,通过自己编译程序,我能够更好地理解课本中的许多程序,也能够自己编写一些简单的程序。

总而言之,通过这几次的上机实验课,我学会了通过用计算机编译程序来处理自己在理论课学习上遇到的各种问题。

希望在以后的实验中能够积累的越来越多,对此体会也越来越深。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2