当前位置: 代码迷 >> 汇编语言 >> 汇编语言实验疑惑,多谢解答
  详细解决方案

汇编语言实验疑惑,多谢解答

热度:3257   发布时间:2013-02-26 00:00:00.0
汇编语言实验疑惑,谢谢解答。
Assembly code
assume cs:codedata segment    db 'Welcome to Masm!';要显示的文字data endscode segment    start:mov ax, 0B800h                mov es, ax                mov bx, 0                                                mov ax, data                mov ds, ax                            s:call cls;循环显示                mov bp, 0                mov di, 0                mov cx, 16                                            s1:mov al, [bp];显示文字                     mov es:[bx+di],al                     mov al, 202                     mov es:[bx+di+1],al                     inc bp                     add di, 2                      loop s1              add bx, 2              mov cx, bx              sub cx, 3968              jcxz s3            jmp far ptr s                            mov ax, 4c00h                int 21h                         s3:mov bx, 0                 jmp s                       cls:push cx;清理屏幕              push ax              push bx              push ds                            mov ax, 0B800h              mov ds, ax              mov bx, 0                            mov cx, 1999                     sn:mov al, 32               mov [bx], al               mov al, 7               mov 1[bx], al               add bx, 2               loop sn                              pop ds               pop bx               pop ax               pop cx              retcode endsend start

以上是王爽汇编语言实验9代码的扩展,我在原题的基础上将其改成了在屏幕上滚动显示,但是效果不理想,主要原因是不知道怎么加延时,而且在没有延时的情况下跑出来的效果和我想象的极快速的在屏幕上滚动的效果也不一致,请指点,谢谢。

------解决方案--------------------------------------------------------
延迟加 NOP 空循环
------解决方案--------------------------------------------------------
在第十五章有一个延迟程序。
------解决方案--------------------------------------------------------
屏幕最后的一部分没有显示
  相关解决方案