有人会yasm吗,小题目高分求解答解决方法

有人会yasm吗,小题目高分求解答
有人会yasm吗,小题目高分求解答

每题100分

------解决方案--------------------
http://www.tortall.net/projects/yasm/
------解决方案--------------------
第一个:
就是使程序可以从键盘输入十进制的数字,把这个数字储存在32位寄存器"eax"上,当输入空格时候程序终止。
mov eax,0
input:
mov bl,10
mul bl
mov ah,02
int 21h
cmp dl,' '
je exit
mov dl,cl
mov edx,0
sub cl,30H
mov dl,cl
add eax,edx
jmp input

------解决方案--------------------
第二个:
输入数字,如果未超过32位则存到32位寄存器"eax"上,如果超过32位,输出一条错误信息。按空格随时退出。
是多少进制的?
如果是16进制的话
就看会不会大于0FFFFFFFFH
现在我以16进制为例
mov eax,0
input:
mov cl,4
rol eax,cl
mov edx ,0
mov ah,02
int 21h
cmp dl,'9'
jeb shuzi
sub dl,7
shuzi:
sub dl,30H
add eax,edx
cmp eax,0FFFFFFFFH
jz exit
jmp input
exit:
mov ah,02
int 21h
cmp dl,' '
jnz exit
------解决方案--------------------
第三个:
每次只能输入0到9以之间的数字,将所有符合要求(>=0,<=9)的数字相加求和,将相加的结果存在eax上,累加超过50程序自动退出。按空格随时退出程序。
mov ebx,0
input:
mov edx,0
mov ah,02
int 21
sub dl,30H
add eax,edx
cmp eax,50
jg exit
jmp input
exit:
mov ah,02
int 21H
cmp dl,' '
jnz exit