下载此文档

汇编子程序设计.doc


文档分类:汽车/机械/制造 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
实验五子程序设计
【实验目的】
掌握一般子程序的调用和返回方法,掌握定义过程的伪指令的用法。
【实验性质】
设计性实验(学时数:3H)
【实验内容】
1、完成两个四位十进制数相加的程序设计,形式为:2345+7869=10214
(1)要求所有中断调用全部采用子程序的形式完成。
(2)要求考虑进位位。完善程序并调试通过。
流程图
程序源代码:
.MODEL SMALL
.386

DATA SEGMENT
FLAG_SIGN DB 0
FLAG_NUM1 DB 0
FLAG_NUM2 DB 0
TEMP DD 0
ARRAY DD 16 DUP(0)
ERR DB 0DH,0AH,'Input error!',0DH,0AH,'$'
STRING DB 0AH,0DH,0AH,0DH,'Please Input(eg. A*B= ) $'
STRIN DB 0AH,0DH,0AH,0DH,'("q" quit):', 0DH,0AH,'$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
AGAIN:
LEA DX,STRING
MOV AH,9
INT 21H
LEA DX,STRIN
MOV AH,9
INT 21H
MOV EBX,OFFSET ARRAY
MOV FLAG_SIGN,0
MOV FLAG_NUM1,0
MOV FLAG_NUM2,0
L_Input0:
XOR EDX,EDX
XOR ECX,ECX
XOR EAX,EAX
MOV AH,1
INT 21H
CMP AL,'+'
JZ L_Input1
CMP AL,'-'
JNZ L_Number
NOT FLAG_SIGN
L_Input1:
MOV AH,1
INT 21H
L_Number:
CMP AL,'0'
JB L_Operator
CMP AL,'9'
JA L_Operator
SUB AL,30H
ADD EDX,EDX
MOV ECX,EDX
ADD ECX,ECX
ADD ECX,ECX
ADD EDX,ECX
MOV AH,0
ADD EDX,EAX
MOV FLAG_NUM1,1
JMP L_Input1
L_Operator:
CMP AL,'*'
JNZ L_Equal
CMP FLAG_NUM1,0
JZ ER
MOV [BX],EDX
ADD BX,4
MOV FLAG_NUM1,0
MOV FLAG_NUM2,1
JMP L_Input0
L_Equal:
MOV [BX],EDX
CMP AL,'='
JNZ L_Quit1
MOV BL,FLAG_NUM1
MOV CL,FLAG_NUM2
CMP BL,CL
JNZ ER
CMP FLAG_SIGN,0
JZ L_Cal
MOV DL,'-'
MOV

汇编子程序设计 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人hnet653
  • 文件大小0 KB
  • 时间2015-08-30
最近更新