远山 发表于 2016-5-23 09:24:08

16.4里面的sub4有个问题

f3:      push cx
          push si
          push di
          push es
          push ds

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

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

         mov cx,80
         mov si,0

f3s1:mov byte ptr ,' '
         add si,2
         loop f3s1

         pop ds
         pop es
         pop di
         pop si
         pop cx
         rep   
SI赋值160,DI赋值0,这样只是将第1行的数据复制到了第0行,之后SI和DI的值没有发生变化啊,那后面的各行都是如何复制到上一行的呢,想了半天没想明白,求指点迷津。

zhouxcpython 发表于 2016-6-7 10:59:34

感谢分享

兰陵月 发表于 2016-6-11 23:35:01

cld
          mov cx,24

f3s:   push cx
         mov cx,160
         rep movsb
         pop cx

有loop循环,cld有方向,有movsb,不需要什么si,di变化了
这些指令综合起来就达到了效果。
页: [1]
查看完整版本: 16.4里面的sub4有个问题