|
主题 : : 我郁闷,我抓狂 [已解决] |
回复[ 4次 ]
点击[ 511次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-03-30 07:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:22
注册日期:2008-03-17 22:23 |
今天做第十章检测题,书看了两遍,还是没有找到哪一题做错了,为什么错了,请大哥大姐指点迷睛
补全程序,实现从内存1000:0处开始执行指令。
assume cs:code
stack segment
db 16 dup(0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,____
push ax
mov ax,____
push ax
retf
code ends
end start
1、 cs,ip
2、 0,1000h
3、 1000h,0
4、 0,1000
-------------------------
这题我选3,一定没错
某程序中定义了如下数据:
data segment
db "Hello"
db 'world'
db "!"
db 'W','elcome'
db "to","masm!"
db "Bye",'b','ye!'
dw 0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh
dd 16 dup (0)
data ends
下列说法正确的是______。
1、 该程序加载后其中的字符数据和数字数据在内存中都是以ASCII码的形式存放的。
2、 该程序加载后这组数据在内存中所占用实际空间是90HB。
3、 该数据段定义可放在该程序中end伪指令之前的任何位置。
4、 在编译阶段,该程序因如此定义数据而报错。
------------------
这题我选2
1是2进制存在内存中,所以是错的
3是错的,因为不可能放在代码段中
4是错的,因为我编译过了
再说2,实际上数据占80HB,还有双“”的数据,我怎么没有在书上看到过呢?
对下列程序说法正确的是_____。
assume cs:codesg
stack segment
dw 10 dup (0)
stack ends
codesg segment
mov ax,4c00h
int 21h
start: mov ax,stack
mov ss,ax
mov sp,20
mov ax,0
push cs
push ax
mov bx,0
retf
codesg ends
end start
1、 程序中start之后的汇编指令不能得到执行。
2、 程序加载后stack段在内存中实际占用的内存空间是20b。
3、 程序的每一条指令都能获得执行,但不能正常返回。
4、 指令retf可替换为ret,并能够正常返回。
------------------------
这题我选4
1是错的,2有点不明确,3程序可以正常返回,4是对的,因为ret相当于pop ip,在当前段中
下面的程序执行后,ax中的数值是多少____
内存地址 机器码 汇编指令
1000:0 b8 00 00 mov ax,6
1000:2 ff d0 call ax
1000:5 40 inc ax
1000:6 mov bp,sp
add ax,[bp]
1、 11
2、 8
3、 9
4、 12
------------------------
1
这题我选的,一定没错
下列哪条指令不能够使CS:IP指向当前内存段范围内以s为标号的代码段______。
1、 jmp near ptr s
2、 jmp far ptr s
3、 call near ptr s
4、 call word ptr s
-------------------------------
4
我题我选4
1,近跳转,16位偏移,没有错
2,远跳转,cs=s所在段(当前段),ip=s的地址
3,call near ptr s,ip压栈,ip=s的地址
4,call word ptr s,这后面不是只可以接内存单元吗?我觉得是错的 | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-03-30 11:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:12
信誉值:0
注册日期:2007-11-13 09:24 |
|
|
|
|
|
[第2楼]
[ 回复时间:2008-03-30 11:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:12
信誉值:0
注册日期:2007-11-13 09:24 |
某程序中定义了如下数据:
data segment
db "Hello"
db 'world'
db "!"
db 'W','elcome'
db "to","masm!"
db "Bye",'b','ye!'
dw 0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh
dd 16 dup (0)
data ends
下列说法正确的是______。
1、 该程序加载后其中的字符数据和数字数据在内存中都是以ASCII码的形式存放的。
2、 该程序加载后这组数据在内存中所占用实际空间是90HB。
3、 该数据段定义可放在该程序中end伪指令之前的任何位置。
4、 在编译阶段,该程序因如此定义数据而报错。
------------------
这题我选2
1是2进制存在内存中,所以是错的
3是错的,因为不可能放在代码段中
4是错的,因为我编译过了
再说2,实际上数据占80HB,还有双“”的数据,我怎么没有在书上看到过呢?
---------
3是错的,因为不可能放在代码段中
你的这句话理解有错误。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-03-30 11:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:22
注册日期:2008-03-17 22:23 |
|
|
|
|
|
[第4楼]
[ 回复时间:2008-03-31 08:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:22
注册日期:2008-03-17 22:23 |
此贴由 贴主 于 [ 2008-03-31 08:34 ] 结贴。 结贴原因:问题已解决 | | |
|