meiyoudao 发表于 2012-7-11 09:37:12

<<汇编语言>>王爽课后监测点6.1

红色字体为不解之处,请高手给点解释.

(2)
assume cs:codesg
codesg segment
    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
    dw 0,0,0,0,0,0,0,0,0,0
start:
    mov ax,cs   ;cs为所填第一空
    mov ss,ax
    mov sp,24h    ;此条指令为所填第二空
    mov ax,0
    mov ds,ax
    mov bx,0
    mov cx,8
s:
    push       //这里我认为是把0123H 压入栈中
    pop cs:    ;此条指令为所填第三空//而这里应该是把栈中的0123H弹出到CS:,也就是把栈中的0123H覆盖了程序开头的0123H.这里的这个答案是不是错误的啊.应该是 mov cs:, .请高手给点解释.
    add bx,2
    loop s
   
    mov ax,4c00h
    int 21h
codesg ends
end start

敉沧 发表于 2012-7-11 09:45:51

注意ds的值。

meiyoudao 发表于 2012-7-11 09:47:47

DS的值是0 啊也就是 0:0 的内容mov 到cs: 中啊.这是题目要求的吧. 要吧0:0-0:15单元中的内容改写程序中的数据

meiyoudao 发表于 2012-7-11 09:52:06

敉沧 发表于 2012-7-11 09:45 static/image/common/back.gif
注意ds的值。

DS的值是0 啊也就是 0:0 的内容mov 到cs: 中啊.这是题目要求的吧. 要吧0:0-0:15单元中的内容改写程序中的数据

meiyoudao 发表于 2012-7-11 10:14:16

敉沧 发表于 2012-7-11 09:45 static/image/common/back.gif
注意ds的值。

哦.我懂了.push其实是吧 ds: (0:0) 的数据压入栈.pop 到 cs: 去.   而mov cs:, 我的这种写法是错误的.但是初衷是一致的.谢谢你啊

敉沧 发表于 2012-7-11 11:40:03

meiyoudao 发表于 2012-7-11 10:14
哦.我懂了.push其实是吧 ds: (0:0) 的数据压入栈.pop 到 cs: 去.   而mov cs:, 我的这种写法是错 ...

哈哈。你终于懂了。。。
页: [1]
查看完整版本: <<汇编语言>>王爽课后监测点6.1