汇编小车移动

汇编上下左右小车控制:
汇编代码:
;显示字符 颜色 个数
WR MACRO CHA,ATR,NUM
    MOV AH,2
    INT 10H
    MOV AL,CHA
    MOV CX,NUM
    MOV BL,ATR
    MOV AH,9
    INT 10H
ENDM        

CODE SEGMENT 
    ASSUME CS:CODE
MAIN PROC FAR
    
CAR:
    mov ah,0
    mov al,3
    INT 10H
LOP1:
    MOV SI,0A0AH    
LOP2:
    MOV DX,SI
    WR 0DBH,0ch,5
    INC DH
    SUB DL,4
    WR 0dbH,30h,2 
    add dl,2
    wr 0DBH,0ch,8
    add dl,8
    wr 001h,30h,2
    INC DH
    sub dl,7
    WR 09H,8EH,1
    ADD DL,6
    WR 9,8EH,1
   ; CALL DELAY    
 
    JMP CURSER_XY
    MOV AH,4CH
    INT 21H
JLOP2:
    JMP LOP2   
    
CURSER_XY:     
        MOV AH,07h           ;键盘输入无回显
        INT 21H
        CMP AL,1BH       ;esc 退出
        JZ OVER            
      ;  MOV CH,03H   
        CMP AL,31H      ;输入1 向下移动
        JNE N_DOWN   
      
        
AA1:   ; push cx
        MOV DX,SI
        INC DH
        SUB DL,3
        WR 0,0,1   
         MOV DX,SI
         INC DH
       SUB DL,3
       WR 0dbH,30h,1  
     ;  pop cx 
      ; dec CH    
     ;  CMP CH,0
     ; loop AA1  
         
        MOV DX,SI    
        CALL CLEAR
        MOV DX,SI  
        INC DH
        MOV SI,DX
        CMP SI,5050H
        JB JLOP2
        JMP LOP1
N_DOWN:
        CMP AL,32H         ;2 向上移动
        JNE N_UP
         MOV DX,SI
        ADD DH,1
        ADD DL,6
        WR 0,0,1   
         MOV DX,SI
         ADD DH,1
        ADD DL,6
       WR 0dbH,30h,1  
        
      ; dec CH    
      ; CMP CH,2
      ; jnz AA1  
         
        MOV DX,SI    
        CALL CLEAR
        MOV DX,SI  
        DEC DH
        MOV SI,DX
        CMP SI,5050H
        JB JLOP2
        JMP LOP1
N_UP:
        CMP AL,33H         ;3 向左移动
        JNE N_LEFT
         MOV DX,SI
        INC DH
        SUB DL,4
        WR 0,0,1   
         MOV DX,SI
         INC DH
       SUB DL,4
       WR 0dbH,30h,1  
        
      ; dec CH    
      ; CMP CH,2
      ; jnz AA1  
         
        MOV DX,SI    
        CALL CLEAR
        MOV DX,SI  
        DEC DL
        MOV SI,DX
        CMP SI,5050H
        JB JLOP2
        JMP LOP1
N_LEFT:
        CMP AL,34H             ;4 向右移动
        JNE CURSER_XY
        MOV DX,SI
        ADD DH,1
        ADD DL,7
        WR 0,0,1   
         MOV DX,SI
         ADD DH,1
        ADD DL,7
       WR 0dbH,30h,1  
        
      ; dec CH    
      ; CMP CH,2
      ; jnz AA1  
         
        MOV DX,SI    
        CALL CLEAR
        MOV DX,SI  
        INC DL
        MOV SI,DX
        CMP SI,5050H
        JB JLOP2
        JMP LOP1

OVER:
        MOV AH,4CH
        INT 21H
MAIN ENDP   
   
   

CLEAR PROC NEAR  
    WR  0,0,5
    INC DH
    SUB DL,4
    WR 0,0,2 
    add dl,2
    wr  0,0,8
    add dl,8
    wr  0,0,2
    INC DH
    sub dl,7
    WR  0,0,1
    ADD DL,6
    WR  0,0,1
    RET
CLEAR ENDP   
 
DELAY PROC NEWR
    MOV CX,0FFFFH
    LOOP $
    MOV CX,0FFFFH
    LOOP $
    MOV CX,0FFFFH
    LOOP $
    MOV CX,0FFFFH
    LOOP $
    MOV CX,0FFFFH
    LOOP $
    MOV CX,0FFFFH
    LOOP $
    MOV CX,0FFFFH
    LOOP $
    RET
DELAY ENDP
CODE ENDS
    END MAIN





运行效果:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路途…

点滴记录

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值