. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->[bx]和loop指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  我的第五章检测题。有一道错了,一直没发现!  [待解决] 回复[ 33次 ]   点击[ 1969次 ]  
kakaxi3dai
[帖 主]   [ 发表时间: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)
kakaxi3dai
[第1楼]   [ 回复时间:2008-03-23 01:20 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-03-08 18:46
真不知道哪道错了!请高手指点下.
fllwt
[第2楼]   [ 回复时间:2008-03-23 17:30 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-02-29 13:24
顶一下 我刚才也做了 就不知道错哪了 高手指点下啊!!!
taotling
[第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  


这个有问题,好好想想。
kakaxi3dai
[第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
.....
kakaxi3dai
[第5楼]   [ 回复时间:2008-03-23 21:41 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-03-08 18:46
21007:00
...
taotling
[第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-------->指令执行完后,没有对这里的数据做任何动作,所以未知。
kakaxi3dai
[第7楼]   [ 回复时间:2008-03-25 18:41 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-03-08 18:46
哎!我都无语了.真是太马虎...又错了!!!!
sunnyfairy
[第8楼]   [ 回复时间:2008-07-21 22:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2008-04-12 00:20
看来我也是这题错了。为什么不是1而是4呢。我选的1.
snakelgz
[第9楼]   [ 回复时间:2008-07-24 16:26 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-06-25 01:27
呵呵~题目问的是字单元哟,而不是字节单元
smallduck155
[第10楼]   [ 回复时间:2008-07-31 21:21 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-06-27 23:00
当时第三题直接编程在DEBUG中得了结果
但是第一题错了实验四的3还是模糊~
果然
freeelf
[第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啊
我刚做了,错了一个题,郁闷
freeelf
[第12楼]   [ 回复时间:2008-08-05 20:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-30 11:47
程序中,只是复制了一个字节吧。。。
不是所有的指令啊。。。
请教高手。。。
freeelf
[第13楼]   [ 回复时间:2008-08-05 20:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-30 11:47
呵呵,知道原因了~~~~~~~~
xlmcktj
[第14楼]   [ 回复时间:2008-10-06 18:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-09-29 08:35
什么原因,是没设CX呀,
vipmike007
[第15楼]   [ 回复时间:2008-10-07 22:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-09-12 00:11
虽然没有设置cx但是你去debug 时候 去查各个寄存器,cx里面是有个默认值的
grasshat
[第16楼]   [ 回复时间:2008-11-05 08:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-11-03 20:56
其实很多题目光靠想很容易出错啊,因为出题目的作者也花了一番心思啊!呵呵,
不过上机调试之后应该不会错的!建议做题目时debug
denlinguang
[第17楼]   [ 回复时间:2008-11-21 13:12 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-09-09 16:17
CX,里根本就没什么所谓的默认值,CX=0000,你还真会放屁
yinxd6112
[第18楼]   [ 回复时间:2008-11-27 23:22 ]   [引用]   [回复]   [ top ] 
荣誉值:12
信誉值:0
注册日期:2008-11-24 18:10
郁闷 我是最后一道答错了(mov ax,[bx])  高手说下为什么  3和4有什么区别?
xyw5224
[第19楼]   [ 回复时间:2008-12-06 19:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:3
注册日期:2008-11-21 14:43
17楼的没有认真DEBUG过吧,CX中存放的就是程序的总字节数~~~~~~~
xyw5224
[第20楼]   [ 回复时间:2008-12-06 19:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:3
注册日期:2008-11-21 14:43
我做第五章错了二次了,第一次对4个,第二次才对3个,呵呵
struts8
[第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)
mqywqs
[第22楼]   [ 回复时间:2011-04-11 18:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-04-05 12:00
唉   ,我都做到32小时了   ,就是错这题,
linzy
[第23楼]   [ 回复时间:2011-04-12 13:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-31 22:33
我就纳闷了 你们为什么喜欢把第六章的内容拿到这第五章讨论区来讨论呢、??
klxo
[第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
lsh080431125
[第25楼]   [ 回复时间:2011-09-24 15:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-09-17 07:44
我今天算是弄明白了
zhujinwu
[第26楼]   [ 回复时间:2011-11-08 00:24 ]   [引用]   [回复]   [ top ] 
荣誉值:15
信誉值:0
注册日期:2011-11-03 09:29
看了这些帖,我也算是明白了,真想敲自己一下,看题目太粗心了,还不是一般的粗心,看了3遍都没看清楚。硬是把“字单元”看成“字节单元”。哎,再多等几个小时吧。
hardstone
[第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)

这道题目我老是错,原来是选错误的,真死要命。。。每次都错一道题
mengjiangtao
[第28楼]   [ 回复时间:2012-07-25 21:02 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2012-04-19 21:29
哈哈,……
foxive
[第29楼]   [ 回复时间:2013-03-06 19:57 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-02-27 21:02
21楼的问题。
因为,start=程序起始相对于CS的偏移。
staywang
[第30楼]   [ 回复时间:2013-07-12 16:54 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-07-07 10:19
这道题很好解,自己debug一下答案就出来了   0000
drakson
[第31楼]   [ 回复时间:2015-02-04 00:20 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2015-01-18 21:26
晕,我算是明白了,和习题类似,但是字节存放相仿,起始为00be,导致后面计算全部错误了,太粗心了,还有楼上的话,我当时应该放程序中跑跑的
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved