爱吃鱼子酱 发表于 2020-4-24 18:17:17

汇编入门直接定址法

sub4:;屏幕向上移动一行
    push cx
    push si
    push di
    push es
    push ds

    mov si, 0b800h
    mov es, si
    mov ds, si
    mov si, 160
    mov di, 0
    cld
    mov cx, 24

sub4s:
    push cx
    mov cx, 160
    rep movsb
    pop cx
    loop sub4s

    mov cx, 80
    mov si, 0

sub4s1:;清空最后一行
    mov byte ptr es:, ' '
    add si, 2
    loop sub4s1

    pop ds
    pop es
    pop di
    pop si
    pop cx
    ret

我的理解是一直复制屏幕第2行给第1行,并没有改变底下23行的内容啊,为什么能做到全屏上移???

爱吃鱼子酱 发表于 2020-4-24 18:25:10

回去看了一遍串传输指令,了解了。每次movsb传输1b成功后 si、di 自动根据df位+1或-1.所以可以达到全屏幕上移
页: [1]
查看完整版本: 汇编入门直接定址法