. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
主题 : :  第九章检测题分析,欢迎指点  [待解决] 回复[ 22次 ]   点击[ 1649次 ]  
debugkkk
[帖 主] [ 发表时间:2008-05-26 21:00 ] 
荣誉值:0
信誉值:16
注册日期:2008-03-17 20:21
有如下程序段,填写2条指令,使程序在运行中将s处的一条指令复制到s0处。 1
    assume segment 
    code segment 
    s: mov ax,bx 
    mov si,offset s 
    mov di,offset s0 
    _______________ 
    _______________ 
    s0: nop 
    nop 
    code ends 
    end s 
 1、 mov ax,cs:[si] 
    mov cs:[di],ax 
 2、 mov ax,cs:[di] 
    mov cs:[si],ax 
 3、 mov ax,[si] 
    mov [di],ax 
 4、 mov ax,ds:[di] 
mov ds:[si],ax

注解:将s处的指令复制到s0处,就是将cs:offset s处的数据复制到cs:offset s0处,而si= offset s,di= offset s0,故选1

对于如下程序: 
    assume cs:code 
    data segment 
    ? 
    data ends 
    code segment 
    start:mov ax,data 
    mov ds,ax 
    mov bx,0 
    jmp dword ptr [bx+2] 
    code ends 
    end start 
    若在指令jmp dword ptr [bx+2]执行后,要使程序再次从第一条指令开始执行,下列对data段中的数据的定义更合理的是______。 3
 1、 dd 0,0,0 
 2、 dw 0,0,0 
 3、 dw 0,0,seg code  
 4、 dw 0,0,offset code
注解:题目要求指令jmp dword ptr [2]执行后,程序再次从第一条指令开始执行,即(cs)= (内存单元地址+2)=(ds:4), (ip)= (内存单元地址)=(ds:2,所以答案1和2都不对,至于3和4谁对谁错不知道,不过我把3和4分别带入后编译得到的结果表明3是正确答案,这里还请各位指点下。


    mov cx,0 
    s: mov ax,bx 
    loop s 
    以上指令序列执行后mov ax,bx被执行了多少次_____。 4
 1、 0 
 2、 256 
 3、 65535 
 4、 65536
注解:loop s执行时,先cx自减1,cx=cx-1=0-1=0+10000H-1=FFFFH,即65535,加上loop s前mov ax,bx被执行了一次,所以mov ax,bx被执行了65535+1=65536次

下列能够改变CS:IP所指位置并能通过编译的指令是______。 4
 1、 jmp short [bx] 
 2、 jne [bx] 
 3、 loop byte ptr [bx] 
 4、 jmp [bx]
注解:jmp short后应该接标号,loop 后面也是。Jne没学过,高手指点下~,jmp [bx],即CS不变,IP=ds:[bx]



对于如下程序: 
    mov ax,2 
    mov cx,3 
    s: add ax,2 
    s1:loop s 
    mov di,offset s1 
    mov si,offset s3 
    mov ax,cs:[di] 
    mov cs:[si],ax 
    mov ax,1 
    mov cx,3 
    s2: add ax,2 
    s3: nop 
    nop 
    所有指令执行完后ax的值为_____。 2
 1、 15 
 2、 7 
 3、 11 
 4、 3
注解:mov di,offset s1 和mov si,offset s3的作用是把S1处的LOOP S复制到S3处,由于mov ax,1指令的作用,ax最终值为1+2+2+2=7
younggay
[第3楼] [ 回复时间:2008-05-30 10:37 ] 
荣誉值:273
信誉值:0
注册日期:2008-01-23 20:23
debugkkk老兄的说法确实很对,组织知识点对于知识的掌握很有作用。
不过,mess的担心一不无道理。之多以检测题没有错误提示,就是想让每个人都好好的学习,姥姥的掌握。
有些懒惰的人,可能就会过于参照你的讲解和答案了。你不杀人,而某人却因你而亡啊。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved