为了实现字节数组的求和,须要先将要加的数放入数据段的一个字节数组中,然后用SI指向此数组的首地址,依次递增,将累加和放入一个寄存器.本程序功能有限,主要是用到了子程序,这就要求对现场进行保护,在子程序执行完后还要RET,恢复其现场,当然本程序没有这么复杂,只是将求和与显示分别作成了一个子程序,
当然我写的这个DISP子程序还有很多不足的地方,只能显示10以下的数,超过10将会显示出乱码,因为出于时间关系没有对其进行完善,这就要用到代码转换的内容了,因为你要用不同的进制进行显示需要进行不同的处理,可能有人会问了,为什么汇编要转换呢,因为在计算机里都是以二进制进行存储的,而显示是显示的字符的ASCII码,如果不进行转换肯定会显示乱码的.
现在大体上说一下代码转换的思路,我们先取出四位,你可以采取循环移位的方式,这样便可轻松的取出高四位,再对其进行判断,当是数字时对其加30H,是字符的时候对其加37H,这是由ASCII表决定的,如果你不信,可以查询一下ASCII表计算试试看.这样我们就可以以任十六进制显示数字了,至于转换成其它码制以后再叙.
下面有一示例程序,完成一组数相加的功能,还有很多不足之处,见谅!
DATAS SEGMENT
BUF DB 1,2,3,1,1,0,1
COUNT EQU ($-BUF)-1
QUESTION DB 13,10,13,10,13,10,'1+2+3+1+1+0+1 ='
RESULT DB ?
DB '$'
DATAS ENDS
;-------------
CODES SEGMENT
ASSUME DS:DATAS,CS:CODES
START:
MOV AX,DATAS
MOV DS,AX
XOR CX,CX
XOR AX,AX
LEA SI,BUF
MOV CX,COUNT
CALL SUM ;调用求和子程序
MOV RESULT,BL ;将结果存入RESULT存储单元
CALL DISPLAY ;调用显示子程序
MOV AH,1
INT 21H
[img]/upload/attachment/90267/fc243365-aaa4-315d-b24c-1215dc2b4620.bmp[/img]
MOV AH,4CH ;RETURN TO DOS
INT 21H
;-----------SUM BEGIN----------------
;子程序一
;作用:计算总和
;入口参数:SI,CX
;出口参数:AX
SUM PROC
MOV BX,0
ADD BL,[SI]
NEXT:
INC SI
ADC BL,[SI]
LOOP NEXT
RET
SUM ENDP
;-------------SUM END----------------
;------------- DISPLAY BEGIN---------
;子程序二
;作用:十进制显示
;入口参数:RESULT
;出口参数:NONE
DISPLAY PROC
XOR DX,DX
MOV DX,OFFSET QUESTION
MOV AH,09H
INT 21H
MOV DL,[RESULT]
ADD DL,30H
MOV AH,2H
INT 21H
RET
DISPLAY ENDP
;-------------DISPLAY END-------------
CODES ENDS
END START
运行效果如下:
- 大小: 2.6 KB
分享到:
相关推荐
汇编_neon内嵌汇编实现数组相加
汇编程序 求数组元素的最大值和最小值汇编程序 求数组元素的最大值和最小值汇编程序 求数组元素的最大值和最小值
数组与数组相加的源程序(VB6.0源代码编写),给出两个数组,程序把两个数组加在一起。
用32位汇编语言将一串整型数组排序后输出,其结果显示在屏幕上
用汇编语言编写 实现数组中元素的分类。需在代码中设置数据内容
易语言源码易语言汇编实现字节集异或源码.rar 易语言源码易语言汇编实现字节集异或源码.rar 易语言源码易语言汇编实现字节集异或源码.rar 易语言源码易语言汇编实现字节集异或源码.rar 易语言源码易语言汇编实现...
找了好多地方没有找到,自己写一个汇编语言实现的数组排序。
汇编实现双字节相乘的源码,汇编实现双字节相乘汇编实现双字节相乘
(1)定义一个数组,并输出此数组 (2)在数组中检索一个数据 (3)数组中有此数据则删除此数据并输出新的数组
使用汇编语言使用宏,实现两个字节压缩BCD数相加,简单编程
易语言汇编取数组成员数源码,汇编取数组成员数,取数组成员数_
这是IBM-PC汇编语言程序设计中的一个小题6-15,R<——x+y-3,也许还有不足,大家可以共同研究
两个字节数(如12h,34h)相加,并将结果显示出来。两个字节数(如12h,34h)相加,并将结果显示出来。两个字节数(如12h,34h)相加,并将结果显示出来。
实现汇编任意两个数相加,本人的汇编作业,觉得还不错,欢迎下载参考,也欢迎提供更好的建议。
可实现任意字节除法运算,运行结果正确 可实现任意字节除法运算,运行结果正确 可实现任意字节除法运算,运行结果正确
用汇编语言实现数据相加的例子!
易语言源码易语言汇编读写数组源码.rar 易语言源码易语言汇编读写数组源码.rar 易语言源码易语言汇编读写数组源码.rar 易语言源码易语言汇编读写数组源码.rar 易语言源码易语言汇编读写数组源码.rar 易语言源码...
易语言源码易语言汇编取数组成员数源码.rar 易语言源码易语言汇编取数组成员数源码.rar 易语言源码易语言汇编取数组成员数源码.rar 易语言源码易语言汇编取数组成员数源码.rar 易语言源码易语言汇编取数组成员数...
易语言字节集转汇编