Zingy 发表于 2021-3-21 18:52:16

从键盘输入一个两位数,为什么【buf+2】存放的是个位数,【buf+3】存放的是十位

datas segment
    buf db 30                                                
             db ?                                                
             db 30 dup(?)
datas ends
code segment               
    assume cs:code,ds:datas   
start:                        
        mov ax,datas            
        mov ds,ax      
       lea dx,buf1                  ;从键盘输入第一个数到缓存区
    mov ah,0AH
    int 21h                     
       
        mov bh,            
        sub bh,30H                  
        mov bl,            
        sub bl,30H            

jackz007 发表于 2021-3-21 20:02:28

本帖最后由 jackz007 于 2021-3-21 20:04 编辑

data segment
    buf db 30
      db 00
      db 30 dup(00)
data ends
stack segment para stack 'STACK'
      db 800h dup(00)
stack ends
code segment
    assume cs:code , ds:data
main proc far
   mov ax,data
   mov ds,ax
   xor dx,dx
   mov ah,0AH
   int 21h
   xor ch,ch
   mov cl,byte ptr
   lea si,
m1:sub byte ptr,30H
   inc si
   loop m1
   mov ax,4c00H
   int 21H
main endp
code ends
end main
      键盘输入 12345678 时,buf 中最后的内容为:
14AC:00001E 08 01 02 03 04 05 06-07 08 0D 00 00 00 00 00   ................
      完全是键盘输入顺序,有什么疑问吗?

ridiculum 发表于 2021-6-16 13:04:43

{:10_279:}

hornwong 发表于 2021-6-22 10:35:52

{:5_95:}

Dragon910623 发表于 2021-6-22 12:54:16

加油

超级玛尼哄 发表于 2021-6-24 23:51:13

{:10_279:}

超级玛尼哄 发表于 2021-6-25 00:58:19

{:10_279:}我要中奖
页: [1]
查看完整版本: 从键盘输入一个两位数,为什么【buf+2】存放的是个位数,【buf+3】存放的是十位