|
发表于 2014-5-15 22:46:30
|
显示全部楼层
本帖最后由 大黑鱼 于 2014-5-16 18:25 编辑
哥们!我刚做了一个你看看行不行
data segment
y0 db 4 ;输入的最大个数
len db ? ;实际输入个数
str0 db 5 dup('$') ;存放数据
str1 db ' 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 ? ;实际输入个数
str0 db 5 dup('$') ;存放数据
y1 db '1 $'
y2 db '0 $'
y3 db '-1$'
str1 db ' 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
注意是分别不是风别
|
|