用汇编语言编写一个加法程序: 1325十9839,用ASCII码的形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加结果显示输出
时间: 2024-02-19 07:03:08 浏览: 150
好的,以下是汇编语言代码:
```
section .data
DATA1 db '1325', 0
DATA2 db '9839', 0
RESULT db 5 dup('0'), 0
section .text
global _start
_start:
; 将DATA1和DATA2中的ASCII码转换为数字,并相加
mov esi, DATA1 ; 被加数
mov edi, DATA2 ; 加数
mov ecx, 4 ; 循环4次,每次处理一个数字
xor eax, eax ; 存储相加结果
add_loop:
mov al, [esi] ; 将被加数的一个数字取出并转换为数字
sub al, '0'
mov bl, [edi] ; 将加数的一个数字取出并转换为数字
sub bl, '0'
add al, bl ; 相加
mov bl, 10 ; 将余数存入BL中
div bl ; edx存储余数,eax存储商
add al, '0' ; 将相加结果转换为ASCII码
mov [RESULT+ecx-1], al ; 存储相加结果
dec esi ; 指向被加数的下一个数字
dec edi ; 指向加数的下一个数字
loop add_loop ; 循环处理下一个数字
; 将相加结果输出
mov edx, 4 ; 输出4个数字
mov ecx, RESULT
mov ebx, 1 ; 输出到标准输出
mov eax, 4 ; 调用sys_write
int 0x80
; 退出程序
mov eax, 1
xor ebx, ebx
int 0x80
```
运行结果为:11164
阅读全文