ORG0000H
MOV 24H, #12H
MOV 23H, #23H
MOV 22H, #34H
MOV 21H, #45H
MOV 20H, #56H 10位十进制加数:1223344556。
MOV 29H, #33H
MOV 28H, #44H
MOV 27H, #55H
MOV 26H, #66H
MOV 25H, #77H 10位十进制被加数:3344556677。
MOV R0, #20H
MOV R1, #25H
MOV R2, #5
CLR C
LOOP:
MOV A, @R0
ADDC A, @R1
DA A
MOV @R0, A
INC R0
INC R1
DJNZ R2, LOOP
SJMP $
END
name change2BTo10D数据段
data segment
outNum db ?输出数字
msgInput db 'please input the num end with B or b or enter.',0ah,0dh,'[eg:101B]:$'
msgEnd db 0ah,0dh,'press any key to end ...$'
data ends
代码段
code segment
assume ds:data,cs:code,es:data
回车子程序
enter proc
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
ret
enter endp
输出提示子程序dx
msg proc
mov ah,9
int 21h
ret
msg endp
输出十进制子程序dl
out10B proc
add dl,30h
mov ah,2
int 21h
ret
out10B endp
检查输入al cl=0 失败
check proc
mov cl,0
cmp al,'0'
jb back
cmp al,'1'
ja back
mov cl,1
back: ret
check endp
变化处理子程序
Do2to10 proc
mov cl,0
cmp outNum,40h 0100 0000将溢出7位
ja Dback
shl outNum,1
add outNum,al
mov cl,1
Dback: ret
Do2to10 endp
输出自程序 outNum<=127
cout proc
mov cl,0 计数
mov bl,0 下一位十位是否显示
L100: cmp outNum,100
jb L100Nt <100
add cl,1
mov bl,1
sub outNum,100
jmp L100
L100Nt: cmp cl,0
je L10
mov dl,cl 输出百位
mov cl,0 清计数
call out10B
L10: cmp outNum,10
jb L10Nt <10
add cl,1
mov bl,1
sub outNum,10
jmp L10
L10Nt: cmp bl,1
je L10out 如果百位有则输出十位
cmp cl,0
je L1
L10out: mov dl,cl 输出十位
mov cl,0 清计数
call out10B
L1: mov dl,outNum 输出个位
call out10B
ret
cout endp
输入子程序
input proc
again: mov al,0
mov ah,1 输入的是 ASII
int 21h
cmp al,'B' 结束输入
je inRet
cmp al,'b'
je inRet
cmp al,13
je inRet
call check 检查输入
cmp cl,0
je backsk cl=0失败 忽略当前输入字符
sub al,30h 结果变成数字
call Do2to10
cmp cl,1
je again cl=1 合法且没有结束 下一个输入
inRet: ret
backsk :mov dl,08h
mov ah,2
int 21h
jmp again
input endp
主程序
main: mov ax,data 装载数据
mov ds,ax
mov ax,0
lea dx,msgInput
call msg
mov outNum,0
call input
call enter
call cout
lea dx,msgEnd 退出
call msg
mov ah,1
int 21h
mov ah,4ch
int 21h
code ends
end main
输入的数必须不大于1111 1111 ==>不大于127
写了久才写好,都忘得差不多了,希望你喜欢,同时谢谢你的问题
运行结果
please input the num end with B or b or enter
[eg:101B]:1111
15
press any key to end ...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)