张国祥 发表于 2011-8-12 15:18:25

这是什么怪情况……

本帖最后由 张国祥 于 2011-8-12 23:00 编辑

assume ds:dsg,cs:csg,ss:ssg

dsg segment
      dd 64 dup(0)
dsg ends

ssg segment
      dw 0                                        ;dw 16 dup(0)
ssg ends

csg segment
      start:      mov ax,ssg
                        mov ss,ax
                        mov sp,2
                        
                        mov ax,dsg
                        mov ds,ax                ;定义栈段,数据段
                        
                        mov cx,14
                        mov bx,0
                        
                        mov ax,1
                        
                s:      mov ,ax
                        add bx,16
                        
                        loop s
                        
                        
                        
                        mov ax,4c00h
                        int 21h
                        
csg ends
end startdebug单步调试,结果:

张国祥 发表于 2011-8-12 18:42:03

自己顶一下~

嗜血丨灵异狂 发表于 2011-8-12 20:15:16

楼主自定义的的各段看的我头晕请高手看吧

嗜血丨灵异狂 发表于 2011-8-12 20:18:40

你那个循环 弄错了   mov cx,14

                        mov bx,0

                        

                        mov ax,1

                        

                s:      mov ,ax

                        add bx,16

                        

                        loop s

                        

要循环标号上边必须是CX   你 CS先是 14   然后又bx,0    mov ax,1   所以循环不执行

嗜血丨灵异狂 发表于 2011-8-12 20:24:37

就算循环前设置CX还是执行不过   试下上来先别压栈   先把数据段和偏移地址放

张国祥 发表于 2011-8-12 23:00:22

问题解决了,系统出了点问题,重启就通过了
页: [1]
查看完整版本: 这是什么怪情况……