|
主题 : : 我的第五章检测题。有一道错了,一直没发现! [待解决] |
回复[ 33次 ]
点击[ 1969次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-03-22 17:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-03-08 18:46 |
1>.对于如下程序:
assume cs:code
code segment
start:mov ax,code
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
下列说法正确的是__3__。
1、 指令mov ax,code改为mov ax,start对程序要 实现的功能没有任何影响。
2、 程序不能通过编译,因为在loop指令之前,没有对寄存器cx进行设定。
3、 程序实现的功能是将程序的所有指令复制到内存中以0:200h为起始地址的
一段内存空间中。
4、 程序实现的功能是用内存中以0:200h为起始地址的一段内存空间中的数据
将程序的所有指令覆盖。
2>.要计算123与456的乘积,应填在空白处的指令序列是__4___。
assume cs:code
code segment
____________
mov ax,4c00h
int 21h
code ends
end
1、 mov ax,1
mov cx,123
s: add ax,123
loop s
2、 mov ax,0
mov cx,456
s: add ax,456
loop s
3、 mov ax,1
mov cx,456
s: add ax,123
loop s
4、 mov ax,0
mov cx,456
s: add ax,123
loop s
3>.已知21000h处字单元的内容为 BE00H,对于如下程序:
mov ax,2000h
mov ds,ax
mov bx,1000h
mov ax,[bx]
inc bx
inc bx
mov [bx],ax
inc bx
inc bx
mov [bx],ax
inc bx
mov [bx],al
inc bx
mov [bx],al
程序执行后,内存中字单元2000:1005中的内容为___3___。
1、 00
2、 BE
3、 00BE
4、 0000
4>. mov cx,5
s: mov ax,[bx]
add bx,2
loop s
上面指令序列,当指令第一次执行到add bx,2时cx的值__1___。
1、 5
2、 4
3、 3
4、 2
5>.在Intel8086环境下,对指令mov ax,[bx]描述错误的是__4___。
1、 指令中,源操作数的段地址默认为ds中的内容
2、 指令中,源操作数的偏移地址为bx中的内容
3、 指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1)
4、 指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah) | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-03-23 01:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-03-08 18:46 |
|
|
|
|
|
[第2楼]
[ 回复时间:2008-03-23 17:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-02-29 13:24 |
顶一下 我刚才也做了 就不知道错哪了 高手指点下啊!!! | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-03-23 18:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:53
信誉值:0
注册日期:2008-02-09 02:55 |
3>.已知21000h处字单元的内容为 BE00H,对于如下程序:
mov ax,2000h
mov ds,ax
mov bx,1000h
mov ax,[bx]
inc bx
inc bx
mov [bx],ax
inc bx
inc bx
mov [bx],ax
inc bx
mov [bx],al
inc bx
mov [bx],al
程序执行后,内存中字单元2000:1005中的内容为___3___。
1、 00
2、 BE
3、 00BE
4、 0000
这个有问题,好好想想。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2008-03-23 21:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-03-08 18:46 |
哦!明白了.呵呵谢谢了taotlin! 应该选择 4.
挨!学习的不够透彻啊.总是有点想当然,没有真正理解程序.
程序存储情况应该是:
21000:00
21001:BE
21002:00
21003:BE
21004:00
21005:BE<--00 /*此处"<--"表示程序继续往下执行后,所得的数据将前面程序所得数据覆盖了*/
21006: BE<--00
21007:be
..... | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-03-23 21:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-03-08 18:46 |
|
|
|
|
|
[第6楼]
[ 回复时间:2008-03-25 00:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:53
信誉值:0
注册日期:2008-02-09 02:55 |
呵呵,要认真哦!
21000:00
21001:BE
21002:00
21003:BE
21004:00
21005:BE<---00
21006:00-------->这里并没有被覆盖
21007:XX-------->指令执行完后,没有对这里的数据做任何动作,所以未知。 | | |
|
|
|
|
[第7楼]
[ 回复时间:2008-03-25 18:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-03-08 18:46 |
|
|
|
|
|
[第8楼]
[ 回复时间:2008-07-21 22:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2008-04-12 00:20 |
看来我也是这题错了。为什么不是1而是4呢。我选的1. | | |
|
|
|
|
[第9楼]
[ 回复时间:2008-07-24 16:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2008-06-25 01:27 |
|
|
|
|
|
[第10楼]
[ 回复时间:2008-07-31 21:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2008-06-27 23:00 |
当时第三题直接编程在DEBUG中得了结果
但是第一题错了实验四的3还是模糊~
果然 | | |
|
|
|
|
[第11楼]
[ 回复时间:2008-08-05 20:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-30 11:47 |
1>.对于如下程序:
assume cs:code
code segment
start:mov ax,code
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
下列说法正确的是__3__。
1、 指令mov ax,code改为mov ax,start对程序要 实现的功能没有任何影响。
2、 程序不能通过编译,因为在loop指令之前,没有对寄存器cx进行设定。
3、 程序实现的功能是将程序的所有指令复制到内存中以0:200h为起始地址的
一段内存空间中。
4、 程序实现的功能是用内存中以0:200h为起始地址的一段内存空间中的数据
将程序的所有指令覆盖。
请问这个题为什么选3呢?程序中没有设置cx啊
我刚做了,错了一个题,郁闷 | | |
|
|
|
|
[第12楼]
[ 回复时间:2008-08-05 20:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-30 11:47 |
程序中,只是复制了一个字节吧。。。
不是所有的指令啊。。。
请教高手。。。 | | |
|
|
|
|
[第13楼]
[ 回复时间:2008-08-05 20:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-30 11:47 |
|
|
|
|
|
[第14楼]
[ 回复时间:2008-10-06 18:02 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-09-29 08:35 |
|
|
|
|
|
[第15楼]
[ 回复时间:2008-10-07 22:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-09-12 00:11 |
虽然没有设置cx但是你去debug 时候 去查各个寄存器,cx里面是有个默认值的 | | |
|
|
|
|
[第16楼]
[ 回复时间:2008-11-05 08:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-03 20:56 |
其实很多题目光靠想很容易出错啊,因为出题目的作者也花了一番心思啊!呵呵,
不过上机调试之后应该不会错的!建议做题目时debug | | |
|
|
|
|
[第17楼]
[ 回复时间:2008-11-21 13:12 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-09-09 16:17 |
CX,里根本就没什么所谓的默认值,CX=0000,你还真会放屁 | | |
|
|
|
|
[第18楼]
[ 回复时间:2008-11-27 23:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:12
信誉值:0
注册日期:2008-11-24 18:10 |
郁闷 我是最后一道答错了(mov ax,[bx]) 高手说下为什么 3和4有什么区别? | | |
|
|
|
|
[第19楼]
[ 回复时间:2008-12-06 19:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:3
注册日期:2008-11-21 14:43 |
17楼的没有认真DEBUG过吧,CX中存放的就是程序的总字节数~~~~~~~ | | |
|
|
|
|
[第20楼]
[ 回复时间:2008-12-06 19:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:3
注册日期:2008-11-21 14:43 |
我做第五章错了二次了,第一次对4个,第二次才对3个,呵呵 | | |
|
|
|
|
[第21楼]
[ 回复时间:2008-12-14 11:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-06 21:24 |
对题一存在疑问,其他应该都正确
1>.对于如下程序:
assume cs:code
code segment
start:mov ax,code
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
下列说法正确的是__3_?此处1为什么不对呢?_。
1、 指令mov ax,code改为mov ax,start对程序要 实现的功能没有任何影响。
2、 程序不能通过编译,因为在loop指令之前,没有对寄存器cx进行设定。
3、 程序实现的功能是将程序的所有指令复制到内存中以0:200h为起始地址的
一段内存空间中。
4、 程序实现的功能是用内存中以0:200h为起始地址的一段内存空间中的数据
将程序的所有指令覆盖。
2>.要计算123与456的乘积,应填在空白处的指令序列是__4___。
assume cs:code
code segment
____________
mov ax,4c00h
int 21h
code ends
end
1、 mov ax,1
mov cx,123
s: add ax,123
loop s
2、 mov ax,0
mov cx,456
s: add ax,456
loop s
3、 mov ax,1
mov cx,456
s: add ax,123
loop s
4、 mov ax,0
mov cx,456
s: add ax,123
loop s
3>.已知21000h处字单元的内容为 BE00H,对于如下程序:
mov ax,2000h
mov ds,ax
mov bx,1000h
mov ax,[bx]
inc bx
inc bx
mov [bx],ax
inc bx
inc bx
mov [bx],ax
inc bx
mov [bx],al
inc bx
mov [bx],al
程序执行后,内存中字单元2000:1005中的内容为___4___。
1、 00
2、 BE
3、 00BE
4、 0000
4>. mov cx,5
s: mov ax,[bx]
add bx,2
loop s
上面指令序列,当指令第一次执行到add bx,2时cx的值__1___。
1、 5
2、 4
3、 3
4、 2
5>.在Intel8086环境下,对指令mov ax,[bx]描述错误的是__4___。
1、 指令中,源操作数的段地址默认为ds中的内容
2、 指令中,源操作数的偏移地址为bx中的内容
3、 指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1)
4、 指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah) | | |
|
|
|
|
[第22楼]
[ 回复时间:2011-04-11 18:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-04-05 12:00 |
|
|
|
|
|
[第23楼]
[ 回复时间:2011-04-12 13:49 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-31 22:33 |
我就纳闷了 你们为什么喜欢把第六章的内容拿到这第五章讨论区来讨论呢、?? | | |
|
|
|
|
[第24楼]
[ 回复时间:2011-08-12 23:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2011-07-28 17:34 |
终于知道错哪了!!
3>.已知21000h处字单元的内容为 BE00H,对于如下程序:
mov ax,2000h
mov ds,ax
mov bx,1000h
mov ax,[bx]
inc bx
inc bx
mov [bx],ax
inc bx
inc bx
mov [bx],ax
inc bx
mov [bx],al
inc bx
mov [bx],al
程序执行后,内存中字单元2000:1005中的内容为___4___。
1、 00
2、 BE
3、 00BE
4、 0000 | | |
|
|
|
|
[第25楼]
[ 回复时间:2011-09-24 15:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-09-17 07:44 |
|
|
|
|
|
[第26楼]
[ 回复时间:2011-11-08 00:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:15
信誉值:0
注册日期:2011-11-03 09:29 |
看了这些帖,我也算是明白了,真想敲自己一下,看题目太粗心了,还不是一般的粗心,看了3遍都没看清楚。硬是把“字单元”看成“字节单元”。哎,再多等几个小时吧。 | | |
|
|
|
|
[第27楼]
[ 回复时间:2012-03-30 22:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2011-07-27 18:40 |
我晕死
5>.在Intel8086环境下,对指令mov ax,[bx]描述错误的是__4___。
1、 指令中,源操作数的段地址默认为ds中的内容
2、 指令中,源操作数的偏移地址为bx中的内容
3、 指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1)
4、 指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah)
这道题目我老是错,原来是选错误的,真死要命。。。每次都错一道题 | | |
|
|
|
|
[第28楼]
[ 回复时间:2012-07-25 21:02 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2012-04-19 21:29 |
|
|
|
|
|
[第29楼]
[ 回复时间:2013-03-06 19:57 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-02-27 21:02 |
21楼的问题。
因为,start=程序起始相对于CS的偏移。 | | |
|
|
|
|
[第30楼]
[ 回复时间:2013-07-12 16:54 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-07-07 10:19 |
这道题很好解,自己debug一下答案就出来了 0000 | | |
|
|
|
|
[第31楼]
[ 回复时间:2015-02-04 00:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2015-01-18 21:26 |
晕,我算是明白了,和习题类似,但是字节存放相仿,起始为00be,导致后面计算全部错误了,太粗心了,还有楼上的话,我当时应该放程序中跑跑的 | | |