. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->包含多个段的程序
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  第6章汇编测试题目  [待解决] 回复[ 20次 ]   点击[ 1035次 ]  
bfsl
[帖 主]   [ 发表时间:2007-10-16 10:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2007-08-29 15:50
以下是我作测试题的答案,但一直提示错了一道,作了4、5边了,还是没有找到哪个错误,哪位朋友帮个忙,非常感谢!!!

在Intel8086环境下,下列说法合理的是__3___。 
 1、 汇编语言程序载入内存后处于64K空间以外的数据和指令将无法使用和执行。 
 2、 一个数据段命名为data,此标号代表这个数据段在内存中的起始地址。 
 3、 如果载入的程序没有返回语句,那么当程序代码执行完毕,将继续读取后续内存空间 
    存储的指令到CPU内部作为指令执行下去,直到遇到返回指令为止。 
 4、 用DW和DD定义进行的数据,只能够以字为单位访问。 


在某程序中,定义了262B的数据段data,那么程序载入内存,该段实际占用的内存空间是__3__B。 
 1、 256 
 2、 262 
 3、 272 
 4、 512 



   assume cs:code  
    code segment  
    start: mov ax,3 
    jmp s1 
    s: mov bx,0 
    mov ax,bx 
    s1: mov cx,3 
    s2: add ax,2 
    loop s2 
    s3: mov ax,4c00h 
    int 21h 
    code ends 
    end s 
    上面代码执行s3处的指令之前,ax的值是___1__。 
 1、 9 
 2、 6 
 3、 5 
 4、 2 




如下程序: 
    assume cs:codesg 
    codesg segment 
    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h 
    start:mov ax,0 
    mov ds,ax 
    mov bx,0 
    mov cx,8 
    s:________ 
    add bx,2 
    loop s 
    mov ax,4c00h 
    int 21h 
    codesg ends 
    end start 
    要实现一次用内存0:0--0:15单元中的数据改写程序中定义的数据,添加到空白处的指令序列不能是_1___。 
 1、 mov cs:[bx],ds:[bx] 
 2、 mov dx,[bx] 
    mov cs:[bx],dx 
 3、 push [bx] 
    pop cs:[bx] 
 4、 mov ax,[bx] 
    mov cs:[bx],ax 



某程序有数据段、栈段和代码段三部分,如果加载后代码段的段地址为X,那么下列说法正确的是_4__。 
 1、 可以断定数据段的段地址是X-2。 
 2、 可以断定栈段的段地址是X-1。 
 3、 可以断定程序PSP区的段地址是X-10。 
 4、 确定数据段和栈段的段地址与X的关系,要视其大小和在其在源程序中定义的位置关系。
happy
[第1楼]   [ 回复时间:2007-10-16 12:46 ]   [引用]   [回复]   [ top ] 
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06
第三道题做错了吧?
fishboy
[第2楼]   [ 回复时间:2007-10-16 13:57 ]   [引用]   [回复]   [ top ] 
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42
第三题错了!请注意代码的最后一行“end s” ,说明代码的起始地址是‘s’标号处,而不是start处!楼主,仔细啊!
bfsl
[第3楼]   [ 回复时间:2007-10-16 14:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2007-08-29 15:50
第三道应该没有问题,在DEBUG中调试过。

我觉的好像第1题有问题,第1题中可把1、4项排除,似乎2、3选项都对!
bfsl
[第4楼]   [ 回复时间:2007-10-16 14:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2007-08-29 15:50
感谢fishboy ,太粗心了,我在DEBUG调试中把“end s”写成了“end”。非常感谢!
caoheqian
[第5楼]   [ 回复时间:2007-10-30 20:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53
和我一模一样。我对了2个
caoheqian
[第6楼]   [ 回复时间:2007-10-31 19:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53
在某程序中,定义了262B的数据段data,那么程序载入内存,该段实际占用的内存空间是__3__B。  
 1、 256  
 2、 262  
 3、 272  
 4、 512  
----------------------------------------------
这道题是什么意思啊?
262B个字节吗????
如果段地址是262B,也不能直接定义吧???
题意都搞不明白,真不知怎么答题啊。
caoheqian
[第7楼]   [ 回复时间:2007-10-31 19:37 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53
应该是262个B吧,总算搞明白了。
262-256=6
256+16=272
caoheqian
[第8楼]   [ 回复时间:2007-10-31 19:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53
第三题应该把ax又重新赋值了。然后再循环。
jackcumt
[第9楼]   [ 回复时间:2007-11-02 17:34 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-18 18:40
应该是262个B吧,总算搞明白了。 
262-256=6 
256+16=272
???这是什么意思啊?想不明白
cat442
[第10楼]   [ 回复时间:2007-11-02 19:19 ]   [引用]   [回复]   [ top ] 
荣誉值:16
信誉值:6
注册日期:2007-06-26 16:56
段地址是16的倍数呀!
msn
[第11楼]   [ 回复时间:2007-12-06 16:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2007-11-25 09:37
第4个为什么选A啊,第1提为什么B不对呢?
goal00001111
[第12楼]   [ 回复时间:2007-12-12 10:35 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:9
注册日期:2007-10-19 10:16
楼上的,data与ds段没有直接联系,需要用assume ds:data将他们联系起来,然后还要把data的值转移到ds,这样他们才真正联系起来了。
对于第4题,如果你完成了实验5,就不会这么说了。
492668570
[第13楼]   [ 回复时间:2007-12-31 19:15 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:1
注册日期:2007-12-02 21:14
第三题错了,应该是6
wangzonggang
[第14楼]   [ 回复时间:2008-01-23 12:14 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-12-26 14:24
第三题错了,应该是2
sen123
[第15楼]   [ 回复时间:2008-01-24 12:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-01-19 11:09
我觉得应该是6的。因为程序入口是从S开始的。
qyjwyjl
[第16楼]   [ 回复时间:2008-01-25 16:40 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2008-01-19 09:34
是6
qyjwyjl
[第17楼]   [ 回复时间:2008-01-29 19:56 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2008-01-19 09:34
刚刚我也发了一个贴,一样的错误。不细心,没注意!!!!
===================================================
xilong3
[第18楼]   [ 回复时间:2008-04-05 15:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-03-27 08:40
在某程序中,定义了262B的数据段data,那么程序载入内存,该段实际占用的内存空间是__3__B。  
 1、 256  
 2、 262  
 3、 272  
 4、 512  
----------------------------------------------
这道题是什么意思啊?
262B个字节吗????
如果段地址是262B,也不能直接定义吧???
题意都搞不明白,真不知怎么答题啊。
------------------
回复:知道那道题错了吗?

上面五道题 有一道是错的
可我还不知道那道


是不是第一道啊   好像选2 
deliwb
[第19楼]   [ 回复时间:2008-04-10 21:35 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:5
注册日期:2008-02-16 20:51
我和楼主的题一样 不过 选得不一样 我选的是33234  可能楼主就错了第3题吧 我确定第三题是2 答案为数字六。
那我就是应该错了第4题呗 请问 第四题为什么选1  不选 3呢? 这里没有指明栈啊 而且没准SS和CS的值相同呢?数据全部都覆盖错乱了很容易混起来的啊。 好像1没有错啊~ 将ds:【bx】 的值送去 CS:【bx】中! 有什么错嘛?
tomato
[第20楼]   [ 回复时间:2008-04-11 11:23 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
【回复】楼上:“好像1没有错啊~ 将ds:【bx】 的值送去 CS:【bx】中! 有什么错嘛?”
这条指令是不正确的,内存不能直接传送数据到内存。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved