赵璐 发表于 2011-12-28 06:38:49

mov ax,cs 和 mov cs,code的区别

本帖最后由 赵璐 于 2012-1-2 18:46 编辑

assume   cs:code
code       segment
start:      mov ax_(在这空填cs和code一样的吧)
            mov ax,0
            mov ds,ax
            mov bx,0
            mov cx,12
s:         mov ax,
            mov cs:,ax
            add bx,2
            loop s

            mov ax,4c00h
            int 21h

code   ends
end   start


415968430 发表于 2011-12-31 23:32:27

本帖最后由 415968430 于 2012-1-1 10:27 编辑

我感觉
mov ax,code
mov cs,ax
这样好像没有必要的额,个人感觉什么mov ax,code啊data啊其实就是把代码段数据段的段地址给ax啦,好像载入内存以后cs就直接是代码段段地址了,不用我没画蛇添足的。而data就不一样了,记得程序开头有个PSP吧,占了256个Byte,所以如果源程序是没有栈段或数据段或者先代码段的那ds比cs多10H,如果源代码先有数据段的那ds比cs多10h还要再多那个数据段长度吧,因为载入内存时好像ds是指向PSP的段地址的,这时
mov ax,data
mov ds,ax
好像就有意义了,因为刚载入时ds和data的段地址不一样的,你换成data单步执行试试,

申明哈:我也是新手,这是我的理解。仅供参考!!哈哈{:5_109:}

赵璐 发表于 2012-1-2 18:46:37

thank you哈哈
页: [1]
查看完整版本: mov ax,cs 和 mov cs,code的区别