风神翼龙 发表于 2014-8-30 21:31:34

为何会出错

;实现LOOP功能

assume cs:code

code segment

start:

      mov ax,cs

      mov ds ,ax

      mov si ,offset lp ;设置ds:si指向源地址

      mov ax ,0

      mov es ,ax

      mov di ,200h ;设置es:di指向目的地址

      mov cx ,offset lp- offset lpend ;设置cx为传输长度

      cld;设置传输方向为正

      rep movsb

      mov ax ,0;设置中断向量表

      mov es ,ax

      movwordptr es:,200h

      movwordptr es:,0

      mov ax ,4c00h

      int 21h

lp:    push bp

       mov bp ,sp

       dec cx

       jcxz lpret

       add ,bx

lpret:pop bp

      iret

lpend: nop

       mov ax , 4c00h

       int 21h

code ends

end start 为何生成的EXE文件一运行系统就提示出错?求大神指教



ghuibin 发表于 2014-8-30 21:52:01

汇编记得不太清楚了,帮楼主顶一下吧

流行语 发表于 2014-8-31 11:44:45

mov cx ,offset lp- offset lpend ;设置cx为传输长度.这行代码写错了,
应该mov cx,offset lpend - offset lp。
麻烦你以后贴代码,这样帮你看的时候可以直接复制代码了。

郭兴华1 发表于 2014-8-31 12:21:57

强烈支持楼主ing……

如是我闻 发表于 2014-8-31 18:27:01

强烈支持楼主ing……

风神翼龙 发表于 2014-8-31 21:19:24

流行语 发表于 2014-8-31 11:44
mov cx ,offset lp- offset lpend ;设置cx为传输长度.这行代码写错了,
应该mov cx,offset lpend - offset ...

果真如此啊!谢谢

hap89 发表于 2014-9-3 21:18:33

飘过~~~~~
页: [1]
查看完整版本: 为何会出错