永发信息网

汇编语言,输入任意两个整数然后求和并输出怎么做

答案:1  悬赏:60  手机版
解决时间 2021-11-23 06:00
汇编语言,输入任意两个整数然后求和并输出怎么做
最佳答案
; multi-segment executable file template.

data segment
s1 dw 0
s2 dw 0
msg1 db "Input integer one:$"
msg2 db 0dh, 0ah, "Input integer two:$"
msg3 db 0dh, 0ah, "Result is:$"
ends

code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax

; add your code here

lea dx, msg1
mov ah, 9
int 21h ; output string at ds:dx

mov cx, 0
call inInt
mov s1, cx

lea dx, msg2
mov ah, 9
int 21h ; output string at ds:dx

mov cx, 0
call inInt
mov s2, cx

add cx, s1
mov s1, cx

lea dx, msg3
mov ah, 9
int 21h ; output string at ds:dx

mov ax, s1

call show

; wait for any key....
mov ah, 1
int 21h

mov ax, 4c00h ; exit to operating system.
int 21h
ends

inInt proc near
next:
mov ah,1
int 21h

cmp al, 0dh
jz r1
cmp al, 0ah
jz r1

cmp al, '0'
jb err
cmp al, '9'
ja err
sub al, '0'

mov dl, al

mov al, 0ah ;//* 10
mul cl
add al, dl ;// cl * 10 + al
mov cx, ax
jmp next
err:
mov cx, -1
r1:
ret
endp

show proc near ;将双字Hex化为 10 进制并显示
mov bx,10
xor cx,cx
Q0:
xor dx,dx
div bx
or dx,0e30h
push dx
inc cx
cmp ax,0
jnz Q0
Q1:pop ax
int 10h
loop Q1
ret

end start ; set entry point and stop the assembler.追问能给解释一下吗?追答前面我用的是emu8086调试的,语法和masm/tasm等稍有差异,修改了一下,改为masm语法。

学习的话,可以试用一下emu8086,非常不错的,写代码,编译调试等非常方便,还有许多不错的例子。
回复字数太多,改用附件。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
想考MPA,学费要多少呢?
电子秤大全地址好找么,我有些事要过去,
从哪里可以看出2019江西江西农信社招聘即将开
一个老人一道题x+y等于灯泡猜成语
555金锐16块的是不是比较淡的?10块的红塔山
梦幻西游资质和成长有具体什么作用,别他妈的
康力酒店地址在什么地方,想过去办事,
54÷4.5的竖式
幻想三国志4外传打爱心三人组的隐藏任务是 “
彩盒材质双幼E坑 用W9这种形式是怎么表示的
40—x=3.9列方程。
有什么样的典故可以来形容批评别人是为别人好
闽东有什么名人
邦杰酱香牛肉八袋装多少钱
南京邮电大学2017年招三本吗
推荐资讯
赛威洗车行(赛威洗车行)地址在哪,我要去那里
cm03/04中DB文件夹中的lang_db和client_db是
2017年高考成绩288能报深职吗?
铭都商务宾馆(魏府路)地址在哪,我要去那里办
淘宝网 浓缩秋ウコン
辰字开头的古诗
各位,1.5T的油耗大概多少
我是比8大,比12小的质数我是
一腔诗意喂了狗这首歌表达的意思是什么?
镬字的钅旁改成言旁怎么读
松下电视怎么连接电脑
lightning-in-a-bottle 是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?