⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 实验1.asm

📁 详见压缩文件
💻 ASM
字号:
.model small
.stack
.code
    Esc_key equ 1bh
    right equ 4bh
    left equ 4dh
    count db ?
save macro 
    push ax
    push bx
    push cx
    push dx
    endm
restore macro
    pop dx
    pop cx
    pop bx
    pop ax
    endm

;programme clear_screen

clear_screen proc near
;save registers 
    save
;clear screen
    mov ah,6
    mov al,0
    mov bh,7
    mov bl,0
    mov ch,0
    mov cl,0
    mov dh,24
    mov dl,79
    int 10h
;locate cursor
    mov dx,0 
    mov ah,2
    int 10h
;restore registers
    restore
    ret
    clear_screen endp
win3 proc near 
;
    mov ah,3
    int 10h
    save
    
    mov ah,2
    mov dh,22
    mov dl,count
    mov bh,0
    int 10h
;out char  
    mov dl,al
    mov ah,2
    int 21h
    inc count
    cmp count,65
    jz scroll_up
    jnz out_win
scroll_up:   
    mov ah,6
    mov al,1
    mov ch,18
    mov cl,15
    mov dh,22
    mov dl,65
    mov bh,7
    int 10h
    mov count,15
out_win:
;
    restore
    mov ah,2
    int 10h 
    ret
    win3 endp
       
win macro ulr,ulc,rdr,rdc,width,locate,get_char,jmp_win
    mov count,15
locate:
    mov ah,2
    mov dh,rdr
    mov dl,ulc
    mov bh,0
    int 10h
;get char fromkbd
    mov cx,width
    get_char:
    mov ah,7
    int 21h
    cmp al,Esc_key
    jz over
    cmp al,right
    jz jmp_win  
    cmp al,left
    jz jmp_win
    mov dl,al
    mov ah,2
    int 21h
    save
    call win3
    restore
    loop get_char
;scroll up
    mov ah,6
    mov al,1
    mov ch,ulr
    mov cl,ulc
    mov dh,rdr
    mov dl,rdc
    mov bh,7
    int 10h 
    jmp locate
    endm
main proc near
    call clear_screen
win1:
    win 5,10,15,30,20,locate1,get_char1,win2
win2:
    win 5,50,15,70,20,locate2,get_char2,win1

over:
    call clear_screen
    mov ah,4ch
    int 21h
    main endp
    end main   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -