追风虎 发表于 2014-5-15 22:46:29

用汇编语言实现从键盘输入一个字,再与零进行比较,然后风别赋予不同的值

谢谢鱼友!

大黑鱼 发表于 2014-5-15 22:46:30

本帖最后由 大黑鱼 于 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

      
      
注意是分别不是风别
      
      

xiaosawanjava 发表于 2014-5-15 22:47:49

反正我是不会的。呵呵。

青玄 发表于 2014-5-16 15:50:21

支持楼上的回答!{:2_27:}

追风虎 发表于 2014-5-16 20:11:22

大黑鱼 发表于 2014-5-15 22:46 static/image/common/back.gif
哥们!我刚做了一个你看看行不行
data segment
      y0   db   4   ;输入的最大个数


牛逼,掉渣天了有木有。

shipeixin729 发表于 2014-6-12 15:57:33

这样也可以吗?

hacker.jin 发表于 2014-9-24 21:35:34

不这样那怎样!

fast 发表于 2015-7-25 23:15:35

强烈支持,欢迎{:1_1:}

xkwyas 发表于 2015-10-20 08:20:41

这些书写格式是在第几章里啊
页: [1]
查看完整版本: 用汇编语言实现从键盘输入一个字,再与零进行比较,然后风别赋予不同的值