汇编语言第二版 检测点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
pop cs: ;此条指令为所填第三空
add bx,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
第3个空中的pop cs:中把CS改成DS可以不
还有就是cs:中的数据是什么 是内存单元中的还是代码中的 如果是源代码中的数据那他也没有入栈呀?怎么到这就变成POP出栈了?原来入栈的不是内存单元中的数据吗? 有没有大牛指点下 补充下 把 pop cs: 中的CS换成SS一样可以改写数据
这么回事 是不是 因为CS 和SS在一个段地址的原因
把 pop cs: 中的CS换成DS就不行了
求助 push 此处压栈的是内存0000H处偏移为BX的地址的内容
pop cs: 此处出栈此内容送到代码段偏移为BX的地址中去
作者和你并不知道内存0000:~0000:15处是什么内容,他只是让你将数据拷贝到代码段哪里就行了,至于为什么,他没说, 有点明白先谢谢您 貌似明白了哦! {:1_1:}还没学到,努力跟上~
页:
[1]