用汇编语言实现从键盘输入一个字,再与零进行比较,然后风别赋予不同的值
谢谢鱼友!本帖最后由 大黑鱼 于 2014-5-16 18:25 编辑
哥们!我刚做了一个你看看行不行
data segment
y0 db 4 ;输入的最大个数
len db ? ;实际输入个数
str0db 5dup('$') ;存放数据
str1db 'Please input a number to x $'
y4 db ?
db '$'
data ends
code segment
assume cs:code,ds:data
start : mov ax,data
mov ds,ax
lea dx,str1 ;显示字符串str1
mov ah,09 ;调用DOS 9 号命令
int 21h
lea dx,y0 ;取y0地址
mov ah,0ah ;调用DOS 10号命令
int 21h
mov al,y0+2
cmp al,30h ;0 的ASSIC码值是30h
je s0 ;当相等时跳转
ja s1 ;当大于0时跳转
mov y4,'1'
jmp next
s0: mov y4,'2'
jmp next
s1: mov y4,'3'
jmp next
next: lea dx,y4
mov ah,09
int 21h
mov ah,4ch ;返回操作系统
int 21h
code ends ;代码段结束
end start
这是调用十号命令的
data segment
y0 db 4 ;输入的最大个数
len db ? ;实际输入个数
str0db 5dup('$') ;存放数据
y1 db '1 $'
y2 db '0 $'
y3 db '-1$'
str1db 'Please input a number to x $'
data ends
code segment
assume cs:code,ds:data
start : mov ax,data
mov ds,ax
lea dx,str1 ;显示字符串str1
mov ah,09 ;调用DOS 9 号命令
int 21h
lea dx,y0 ;取y0地址
mov ah,0ah ;调用DOS 10号命令
int 21h
mov al,y0+2
cmp al,30h ;0 的ASSIC码值是30h
je s0 ;当相等时跳转
ja s1 ;当大于0时跳转
lea dx,y3 ;显示y3
mov ah,09
int 21h
jmp next
s0: lea dx,y2 ;输出y2
mov ah,09
int 21h
jmp next
s1: lea dx,y1 ;输出y1
mov ah,09
int 21h
jmp next
next: mov ah,4ch ;返回操作系统
int 21h
code ends ;代码段结束
end start
注意是分别不是风别
反正我是不会的。呵呵。 支持楼上的回答!{:2_27:} 大黑鱼 发表于 2014-5-15 22:46 static/image/common/back.gif
哥们!我刚做了一个你看看行不行
data segment
y0 db 4 ;输入的最大个数
牛逼,掉渣天了有木有。 这样也可以吗? 不这样那怎样! 强烈支持,欢迎{:1_1:} 这些书写格式是在第几章里啊
页:
[1]