x86汇编之使用键盘控制字符移动

使用16号中断码

;控制上下左右方向 a61表示向左 w77表示向上 s73表示向下 d64表示向右
code segment  
    
    start:    
    
         mov ax,0B800H
         mov es,ax
         mov bx,0 
         
         scan:
         mov ah,0H
         int 16H  
         
         cmp al,61H
         jne scan2   ;jne jump not equal
         call left
         
         jmp scan   ;jump   
         
         scan2:
            cmp al,77H
            jne scan3
            call top 
            jmp scan
            
         scan3:
            cmp al,73H
            jne scan4
            call down
            jmp scan  
         
         scan4:
            cmp al,64H
            jne scan
            call right
            jmp scan
         
         left:                     
            mov es:[bx], ' '
            mov es:[bx-2],'a' 
            sub bx,2
            ret
              
         top:                     
            mov es:[bx], ' '
            mov es:[bx-160],'a'
            sub bx,160
            ret
            
         down:                     
            mov es:[bx], ' '
            mov es:[bx+160],'a' 
            add bx,160
            ret 
            
         right:                     
            mov es:[bx], ' '
            mov es:[bx+2],'a'
            add bx,2
            ret
code ends 
end start

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值