- C/C++ code
1.下列指令的书写正确的是:____3 1、 push al 2、 mov cs:[0],ds:[10] 3、 pop si 4、 mov ds:[0],2 2.能够只将al中的内容压入栈的指令序列是_____。1 1、 push al 2、 pop ax 3、 mov ah,0 push ax 4、 mov ax,0 push ax 3.下列说法正确的是:3____ 1、 数据段和代码段的段地址不能相同。 2、 指令mov ax,bx执行完后bx中的值为零。 3、 一个栈段的大小可以设为任意值。 4、 当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。
上面是我选的答案,他们选什么呢?给个解析?
例如:push一定是16位吗?
------解决方案--------------------------------------------------------
1. pop si 是正确的吧。
2. 既然认为 1. 里答案 3 才是对的,这里怎么又选答案 1 了呢?
3. 这个题目有些模糊了。答案 3 说是任意值,在段大小的限制之内也应该对齐到 word 吧。答案 4 栈顶超界,应该是回绕吧。
push 必须是 16 位的。当然了,这是指在 dos16 环境下说的。
------解决方案--------------------------------------------------------
A,B,C,D代表1,2,3,4.
1.对
2.你第一题都没有选A,第二题怎么选了A了呢,C才是对的
3.c明显错的,当你给了栈段的地址后,它的偏移量就有一个范围,不是任意值,在DOS环境下是0-ffff.
选D。
------解决方案--------------------------------------------------------
1. 3
2. 3
3. 4
------解决方案--------------------------------------------------------
1.3 2.3 3.4