- [qq247890212] 怎么文章显示不全? 我这到第四题就省略了。。。 12/11 11:15
- [aa227168] 第八题的b 我不太明白可以说的详细点吗? 09/17 21:53
- [zhujinwu] 十、下面哪个是错误的指令(D) 1、mov ax,bx 2、add 03/04 10:44
- [cpt1975] 4、add al,100h 错误,书本19页很清楚,错误原因是指令的两个操作对象位数不一致,al 10/26 09:26
- [moonrose] 十、下面哪个是错误的指令(D) 1、mov ax,bx 2、add al 09/18 11:22
- [lshang] "为什么不执行啊???(mov ax,0) " 1000:0 mov ax,8 06/08 17:26
- [hack_gx] 为什么不执行啊???(mov ax,0) 04/22 19:50
- [z497917579] 答案4是因为缺少end吧。。。博主似乎写错了。。。 04/08 17:16
- [z497917579] "汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。"大侠们,这句话真的准确吗? 04/08 16:58
- [游客] '1000:5 mov ax,0' 执行后IP为什么不改变? -------------- 11/18 17:13
- [游客] 同学们好,新写《汇编语言魔令营》一书,欲寻求试读者,请踊跃报名,多谢! 07/01 19:10
[2010-11-14 10:04] 第二章
A、5EFH B、203H:00EFH C、005EH:000FH D、0002H:05CFH
解析:0020H:03EFH确定的物理地址为005EFH,,B结果为0211FH与题中给出的物理地址不符。
二、 1000:0 mov ax,8
1000:3 jmp ax
1000:5 mov ax,0
1000:8 mov bx,ax
1000:a jmp bx
CPU从1000:0处开始执行指令当执行完1000:a处的指令后几次修改IP(C)
A、4 B、5 C、6 D、7
解析:
1000:0 mov ax,8 执行后IP+3=3 IP第一次改变
1000:3 jmp ax 执行后IP+2=5 IP第二次改变,有转移指令,IP再次改变,IP第三次改变
1000:5 mov ax,0
1000:8 mov bx,ax 执行后IP+2=A IP第四次改变
1000:a jmp bx 执行后IP+2=C IP第五次改变,有转移指令,IP再次改变,IP第六次改变
三、下列关于8086CPU的工作原理的描述错误的是(C)
A、汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。
B、CPU在访问内存时,采用“段地址*16+偏移地址”的形式给出要访问的内存单元的物理地址。
C、任意时刻,CS:IP指向的内容即是此刻CPU正在执行的指令。
D、传送指令能够更改所有通用寄存器的内容。
解析:CPU的工作过程:
1、从CS:指向的内存单元读取指令,读取的指令进入指令缓冲器;
2、IP指向下一条指令;
3、执行指令。(转到步骤1重复这个过程)
四、16位结构的CPU不一定具备的特征是(D)
A、运算器一次最多处理16位的数据。
B、寄存器的最大宽度为16位。
C、寄存器和运算器之间的通路为16位。
D、地址总线为16根。
解析:8086CPU为16位CPU,地址总线为20根。
五、mov ax, 936AH
mov bx,79B8H
add al,bl
指令执行后AX中的数据是(B)
A、1C22H B、9322H C、9422H D、1D22H
解析:
第一步执行完AX=936AH;
第二步执行完BX=79B8H;
第三步执行完AL+BL=122,AX=9322H
六、在DEBUG中,(A)选项中的命令可以修改内存单元的内容
A、A B、D C、T D、U
解析:A和E命令可以修改内存单元的内容。
A命令在内存单元中以汇编指令的格式在内存中写入一条机器指令。
E命令可直接在内存中写入数据。
七、下列说法中正确的是(D)
A、一条指令被执行后,IP的值进行改变。
B、当CPU执行完当前指令返回debug后CPU就闲下来不再进行工作。
C、E命令可将所有内存单元中的数据进行改变。
D、CPU将CS:IP所指向的内存单元中的数据当做指令来执行。
解析:A、当数据从内存中读出送入指令缓冲器之后,IP值增加,然后执行指令。在指令执行前,IP的值进行改变。
B、当CPU执行完当前指令后,继续执行CS:IP所指向的下一条指令。
C、ROM中的内容不可改变。
八、下列说法中正确的是(D)
A、8086CPU采用“段地址*16+偏移地址=物理地址”的寻址模式,所以内存是有一个一个的段组成,每一个段有一个段地址。
B、物理地址为FFFF0H的内存单元的偏移地址可能为FFFFH。
C、一个段的大小可以是8Byte。
D、在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行。
解析:
A、内存不是由段组成的,段的划分是有CPU来确定的。
B、如果物理地址为FFFF0H,偏移地址为FFFFH,则段地址为EFFF1H,但EFFF1H不是合法的段地址,所以该物理地址的偏移地址不能为FFFFH。
C、每个段的起始地址必须为16的整数倍,所以一个段最小为16B。
九、 mov ax,936AH
mov bx,79B8H
add ax,bx
指令执行后AX中的数据是(C)
A、1C22H B、0C22H C、0D22H D、1D22H
解析:最终结果为10D22H,但AX为16位寄存器,所以最高位丢弃,结果为0D22H.。
十、下面哪个是错误的指令(D)
1、mov ax,bx
2、add al,0f5h
3、mov al,bh
4、add al,100h
解析:AL为8位寄存器,不能将高于8位的数据放入8位寄存器内。
[ 游客 发表于 2010-11-16 15:11 ]
十、下面哪个是错误的指令(D)
1、mov ax,bx
2、add al,0f5h
3、mov al,bh
4、add al,100h
这个应该是 ' 3、mov al,bh ' 错了吧 'bh'应写成'0bh'
[ robin2008 发表于 2010-11-16 15:15 ]
解析:
1000:0 mov ax,8 执行后IP+3=3 IP第一次改变
1000:3 jmp ax 执行后IP+2=5 IP第二次改变,有转移指令,IP再次改变,IP第三次改变
1000:5 mov ax,0
1000:8 mov bx,ax 执行后IP+2=A IP第四次改变
1000:a jmp bx 执行后IP+2=C IP第五次改变,有转移指令,IP再次改变,IP第六次改变
'1000:5 mov ax,0' 执行后IP为什么不改变?
[ 游客 发表于 2010-11-18 17:13 ]
'1000:5 mov ax,0' 执行后IP为什么不改变?
--------------
没有执行这句
这个应该是 ' 3、mov al,bh ' 错了吧 'bh'应写成'0bh'
--------------------------
语法没错,bh这里是寄存器,
可以在debug下跟踪验证
[ z497917579 发表于 2011-04-08 16:58 ]
"汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。"大侠们,这句话真的准确吗?
[ hack_gx 发表于 2011-04-22 19:50 ]
为什么不执行啊???(mov ax,0)
[ lshang 发表于 2011-06-08 17:26 ]
"为什么不执行啊???(mov ax,0) "
1000:0 mov ax,8
1000:3 jmp ax
1000:5 mov ax,0
1000:8 mov bx,ax
1000:a jmp bx
第二句执行时,ax = 8.
所以直接跳到1000:8处执行了。
[ moonrose 发表于 2011-09-18 11:22 ]
十、下面哪个是错误的指令(D)
1、mov ax,bx
2、add al,0f5h
3、mov al,bh
4、add al,100h
我在debug下第二个和第四个都有错误(没加h)。所以我认为这个题第三和第四都是错误的
[ cpt1975 发表于 2011-10-26 09:26 ]
4、add al,100h 错误,书本19页很清楚,错误原因是指令的两个操作对象位数不一致,al是8位寄存器,100h是100000000B
[ zhujinwu 发表于 2012-03-04 10:44 ]
十、下面哪个是错误的指令(D)
1、mov ax,bx
2、add al,0f5h
3、mov al,bh
4、add al,100h
我在debug下第二个和第四个都有错误(没加h)。所以我认为这个题第三和第四都是错误的
--------------------------
add al,0f5h在Debug中应该写成:add al,f5
前面的0和后面的h都应该去掉
[ aa227168 发表于 2012-09-17 21:53 ]
第八题的b 我不太明白可以说的详细点吗?