多位数运算的问题。
计算
1ABA234567890ABAH+2DEF098765432DEFH,此时必须借助内存。
汇编语言。求code段。谢谢啦!
微机原理 两个多位16进制数相加
答案:2 悬赏:80 手机版
解决时间 2021-02-16 06:37
- 提问者网友:那叫心脏的地方装的都是你
- 2021-02-15 20:06
最佳答案
- 五星知识达人网友:平生事
- 2021-02-15 20:51
DATAS SEGMENT
X DB 1AH,0BAH,23H,45H,67H,89H,0AH,0BAH
COUNT EQU $ - X
Y DB 2DH,0EFH,09H,87H,65H,43H,2DH,0EFH
Z DB COUNT DUP (0)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES, DS:DATAS
START:
MOV AX, DATAS
MOV DS, AX
;---------------------------
;两个多位16进制数相加
;楼主所要求的,就是下面这些:
MOV BX, 0
MOV CX, COUNT
CLC
AGAIN:
MOV AL, X[BX]
ADC AL, Y[BX]
MOV Z[BX], AL
INC BX
LOOP AGAIN
;---------------------------
EXTI: ;结束程序
MOV AH, 4CH
INT 21H
CODES ENDS
END START
X DB 1AH,0BAH,23H,45H,67H,89H,0AH,0BAH
COUNT EQU $ - X
Y DB 2DH,0EFH,09H,87H,65H,43H,2DH,0EFH
Z DB COUNT DUP (0)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES, DS:DATAS
START:
MOV AX, DATAS
MOV DS, AX
;---------------------------
;两个多位16进制数相加
;楼主所要求的,就是下面这些:
MOV BX, 0
MOV CX, COUNT
CLC
AGAIN:
MOV AL, X[BX]
ADC AL, Y[BX]
MOV Z[BX], AL
INC BX
LOOP AGAIN
;---------------------------
EXTI: ;结束程序
MOV AH, 4CH
INT 21H
CODES ENDS
END START
全部回答
- 1楼网友:行雁书
- 2021-02-15 21:00
1. 写出基本框架
数据段:定义变量
代码段:
主体代码:数据段初始化,退出代码
2. ; base structure
dseg segment
a db 0 ;输入的第1个数
b db 0 ;输入的第2个数
r db 0 ;保存的计算结果 a-b
dseg ends
cseg segment
assume cs:cseg, ds:dseg
start:
mov ax, dseg
mov ds, ax
;这里开始写题目要求的代码
; exit to os
mov ah, 4ch
int 21h
cseg ends
end start3. 读取变量a, b, 计算a-b并写入r
;下面的代码需要写入上面 " ;这里开始写题目要求的代码"之后
mov ah,1
int 21h ;用int 21h的1功能,读取一个数据字符(al)中
sub al, 30h ;不考虑输出非数字字符情况下,减30h即为对应的10进制数
mov a, al ;保存到变量a
int 21h ; 读取第2个字符 ,这里注意,输入两个数的时侯,中间不要加回车、空格等
;这里,因为ah, 没有发生改变,所以省略了一步mov ah,1
sub al,30h
mov b, al
mov bl, a ;提取保存的a
sub bl, al ;计算a-b,放入bl
mov r, bl ;计算结果放入 r4. 编译并调用程序
用masm 或tasm等。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯