求汇编语言程序,可以直接回答,也可发到邮箱843655454@qq.com
(1)编写一程序,作BCD数的四则运算,在程序中设置非压缩BCD数X,从键盘输入一位十进制数Y。将X+Y、X-Y、X*Y及X/Y(不考虑余数)分别送ANS_A,ANS_S...
(1)编写一程序,作BCD数的四则运算,在程序中设置非压缩BCD数X,从键盘输入一位十进制数Y。将X+Y、X-Y、X*Y及X/Y(不考虑余数)分别送ANS_A,ANS_S,ANS_M及ANS_D变量。上机调试程序;检查执行结果。
(2)编写一程序,实现两个三字节无符号数DATA1和DATA2的相加,结果送四字节变量ANS。上机调试程序,检查执行结果。 展开
(2)编写一程序,实现两个三字节无符号数DATA1和DATA2的相加,结果送四字节变量ANS。上机调试程序,检查执行结果。 展开
1个回答
展开全部
第二题:
assume cs:code,ds:data
data segment
data1 db 12h,34h,56h ;按照由低到高顺序保存在内存中的,所以是654321h,下同
data2 db 0abh,0cdh,0efh
ans dd ?
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,offset ans
mov di,offset data1
mov si,offset data2
mov ax,[di]
add ax,[si]
mov [bx],ax
mov al,[di+2]
adc al,[si+2] ;用adc带进位加法就能算高位的值了
mov [bx+2],al
mov al,0
adc al,0 ;3字节的值加上有进位,所以要算第4字节的
mov [bx+3],al
code ends
end start
计算的是654321h+0fedcbah的值,结果是16420dbh
assume cs:code,ds:data
data segment
data1 db 12h,34h,56h ;按照由低到高顺序保存在内存中的,所以是654321h,下同
data2 db 0abh,0cdh,0efh
ans dd ?
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,offset ans
mov di,offset data1
mov si,offset data2
mov ax,[di]
add ax,[si]
mov [bx],ax
mov al,[di+2]
adc al,[si+2] ;用adc带进位加法就能算高位的值了
mov [bx+2],al
mov al,0
adc al,0 ;3字节的值加上有进位,所以要算第4字节的
mov [bx+3],al
code ends
end start
计算的是654321h+0fedcbah的值,结果是16420dbh
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询