一个人 发表于 2012-9-7 22:03:54

发现个问题 不知道是我的代码有问题还是书上就错了 求精通的来看看

本帖最后由 一个人 于 2012-9-9 08:33 编辑

这是我写的第十二章后面的实验代码(基本是照搬课本上的代码 嘿嘿) 先看括号里的那几句
手机发帖 没有排版 大家将就一下
assume cs:code

code segment
start:mov ax,cs
      mov ds,ax
      mov si,offset do0         ;设置复制源内容头地址
      
      mov ax,0
      mov es,ax
      mov di,200h               ;设置复制内容目标地址
      
      mov cx,offset do0ends-offset do0
                                 ;设置复制次数
      
      cld                     
      rep movsb               ;正序复制
      
      mov ax,0
      mov es,ax
      mov word ptr es:,200h
      mov word ptr es:,0h            ;设置0号中断向量地址
      
      mov ax,4c00h
      int 21h
      
do0:       jmp short do0start   ;do0start为代码段开始,直接跳到do0start
             db "divid eerror!"
do0start:   ( mov ax,0
             mov ds,ax
          mov si,202h)          ;jmp short do0start占两字节 ds:si指向字符串首地址
         
          mov ax,0b800h
          mov es,ax
          mov di,12*160 36*2   ;设置显示位置地址
         
          mov cx,13            ;设置字符串复制次数
      s:   mov al,ds:
             mov ah,95            ;设置字符串颜色属性
          mov es:,ax
          inc si
          add di,2
          loop s               ;复制字符串到显存
         
          mov ax,4c00h
          int 21h
do0ends:   nop
code ends
end start
         
然后课本上的是mov ax,cs 我用课本上的就不能实现 但是用自己写的就能实现 我感觉课本上应该是错了 那个字符串在前面已经被复制到了0:202处 所以不应该是mov ax,cs吧
希望精通的给解释下 谢谢了

一个人 发表于 2012-9-8 07:14:41

没人管啊?……

一个人 发表于 2012-9-8 19:15:18

还没人解答 你们是不知道啊?
页: [1]
查看完整版本: 发现个问题 不知道是我的代码有问题还是书上就错了 求精通的来看看