概述
第一次写汇编代码,带着懵懂和尝试,写到半夜两点,54行代码终于出炉了,勉强能够实现两个4位十进制数的加法,在此留下代码作纪念
STACK SEGMENT STACK ;定义堆栈段STACK
DW 521 DUP(?) ;堆栈段的大小是1024B(512字)空间
STACK ENDS ;堆栈段结束
DATA SEGMENT ;定义数据段DATA
STRING1 DB '9619+','$'
STRING2 DB '9658=','$'
SUM DB ' ','$'
DATA ENDS ;数据段结束
CODE SEGMENT 'CODE' ;定义代码段
ASSUME CS:CODE,DS:DATA,SS:STACK ;确定CS、DS、SS指向的逻辑段
START:MOV AX,DATA ;设置数据段的段地址DS
MOV DS,AX
LEA SI,STRING1
LEA DI,STRING2
LEA BX,SUM
MOV CX,3
ADD SI,3
ADD DI,3
ADD BX,4
CLC
PUSHF
AGAIN:MOV AL,[SI]
POPF
ADC AL,[DI]
AAA
PUSHF
OR AL,'0'
MOV [BX],AL
DEC SI
DEC DI
DEC BX
DEC CX
JNS AGAIN
POPF
JNC ONE
LAHF
AND AH,1
OR AH,'0'
MOV [BX],AH
JNZ TWO
ONE: INC BX
TWO: MOV AH,9
MOV DX,OFFSET STRING1
INT 21H
MOV AH,9
MOV DX,OFFSET STRING2
INT 21H
MOV AH,9
MOV DX,BX
INT 21H
MOV AX,4C00H ;利用系统功能调用返回DOS
INT 21H
CODE ENDS ;代码段结束
END START ;汇编结束,同时表明程序起始位置为标号START处
实验结果:
该程序可以实现任意的两个4位十进制数相加
菜鸟成长记
最后
以上就是酷酷大白为你收集整理的两个多位十进制数相加(纪念本人的第一次汇编代码)的全部内容,希望文章能够帮你解决两个多位十进制数相加(纪念本人的第一次汇编代码)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复