第2章80x86编程的硬件基础
本章要点:80x86的寄存器的分类、作用以及有关寄存器的特定用法,内存及其分段,逻辑地址和物理地址,I/0端口地址。
一、单项选择题
2.1.1 80x86的寄存器中,8位的寄存器共有(C)个。
A. 4
B. 6
C. 8
D. 10
2.1.2 总是指向下一条要执行的指令,由此实现程序的自动执行的寄存器是(B)。
A. BP
B. IP
C. SP
D. IR
2.1.3 标志寄存器用来保存算术逻辑运算的结果状态,其中用于表示当前运算结果是否为0的标志位是(D)。
A. CF
B. OF
C. SF
D. ZF
2.1.4 80x86CPU执行算术运算时,FLAGS共有(B)个标志位受影响。
A. 5
B. 6
C. 7
D. 9
2.1.5 一个16位相对位移的范围是(C)。
A. -128~127汇编语言要什么基础
B. 0~65535
C. 8000H~7FFFH
D. 8000H~FFFFH
2.1.6 如果某一存储单元的物理地址为12345H,则它的逻辑地址为(D):0345H。
A. 12000H
B. 0012H
C. 0120H
D. 1200H
2.1.7 通常我们所说的32位机,是指这种计算机的CPU(C)。
A. 由32个运算器组成
B. 包含32个寄存器
C. 能够同时处理32位二进制数
D. 一共有32个运算器和控制器
2.1.8 下列寄存器组中,用于提供段内偏移地址的寄存器组是(B)。
A. AX,BX,CX,DX
B. BX,BP,SI,DI
C. SP,BP,IP,DX
D. CS,DS,ES,SS
2.1.9 在80x86系统中,约定用于形成堆栈段数据物理地址的寄存器有(B)。
A. DS,DX,BX
B. SS,BP,SP
C. SS,BX,BP
D. DS,BP,SP
2.1.10在程序的运行过程中,确定下一个指令的物理地址的计算表达式是(C)。
A. D S×16+SI
B. E S×16+DI
C. CS×16+IP
D. S S×16+SP
二、填空题
2.2.1 在80x86的16位寄存器中,可以用来指示存储器地址的有_10__个,它们分别是__BX BP SI DI I
P SP DS CS ES SS____________________;既可以用来指示存储器地址又可以用来存放操作数的有__5__个,它们分别是__BX BP SI DI SP____________。
2.2.2 在实模式下,段地址和偏移地址为3017:000AH的存储单元的物理地址是_3017A_H;段地址和偏移地址为3015:002AH的存储单元的物理地址是_3017A__H;段地址和偏移地址为3010:007AH的存储单元的物理地址是_3017A_H;这个结果说明了什么?_同一物理地址可以由不同的段地址和偏移地址组成___________。
2.2.3 设有一个包含20个字的数据区,起始地址为10F0:02A0H,则该数据区的首字单元的物理地址是__111A0____H;末字单元的物理地址是___111C6___H。
2.2.4 在实模式下,存储器中每一段最多有10000H(即64K)个字节,在DEBUG下用R命令所显示的当前各寄存器的内容和各标志的状态如下:
AX=0000 BX=0200 CX=0014 DX=0020 SP=0E8C BP=0080 SI=0006 DI=0000
DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0106 NV UP EI NG ZR NA PE NC 请画出此时存储器分段的示意图,并回答以下问题:
(1)当前的下一条指令的物理地址是_320F6___H ;当前栈顶的物理地址是_22D8C __H ;
(2)状态标志OF 、SF 、ZF 、CF 的当前值(用0或1表示)分别是_0_,_1_,_1_,_0;
2.2.5 进行下列操作时,通常使用哪个或哪几个16位寄存器来完成?
(1)加、减运算:____AX 、BX 、CX 、SI 、DI 、BP ______;
(2)乘法、除法:____AL 、AX 、DX _____________;
(3)循环计数:_____CX______________;
(4)保存段地址:_CS 、DS 、SS 、ES _________;
(5)作为指针使用:___SI 、DI 、BX 、BP 、SP ____;
(6)存放端口地址:______DX _____________;
*2.2.6 80x86微机的I/O 地址空间可达__64____KB ,端口地址的范围是0000~FFFFH 。在输入输出指令中,端口号通常由___DX ___寄存器提供;有时也可以在指令中直接指定00~FFH 的端口号,8位的端口数共有__256___个。
*2.2.7 以后进先出的方式工作的存储空间称为___堆栈______;能被计算机直接识别的语言是__机器___语言;用指令的助记符、符号地址表示的面向机器的语言称为__汇编__语言;把若干个模块连接起来成为可执行文件的系统程序是___连接程序(LINK )_。
三、简答题
2.3.1 80x86微机的存储器中存放信息如图所示,请写出30022H 和30024H 字节单元的内容分别是什么?以及
字单元的内容分别是什么?
(30022H )=0ABH (30024H )=56H (30021H )字=0AB34H (30022H )字
=0CDABH
2.3.2 有两个16位字5EE1H 和2A3CH 分别存放在80x86微机的存储器的100B0H 和100B3H 单元中,请用图表示出它们在存储器里的存放情况。
30020H 30021H 30022H 30023H 30024H
2.3.3 从内存地址2000H 开始,依次存放着3个数:1(字)、2BH (字节)和351DH (双字),请用图表示出它们在存储器里的存放情况。
2.3.4 给出下列8位二进制数相加后CF 、OF 、SF 、ZF 的值(用0或1表示)?如果把它们看作是无符号数相加则如何判断溢出(用1表示有,0表示无)?
CF OF SF ZF 看作无符号数时的溢出判断
(1) 0FFH + 01H :___1____0____0___1___ ______1________;
(2) 0FEH + 01H :___0____0____1___0___ ______0________;
(3) 80H + 81H : ___1____1____0___0___ ______1________;
(4) 7FH + 02H : ___0____1____1___0___ ______0________;
2.3.5 给出下列8位二进制数相减法CF 、OF 、SF 、ZF 的值(用0或1表示)?如果把它们看作是无符号数相减则如何判断溢出(用1表示有,0表示无)?
CF OF SF ZF 看作无符号数时的溢出判断
(1) 09H - 05H :_____0____0___0____0____ _______0___________;
(2) 05H - 09H :_____1____0___1____0____ _______1___________;
(3) 80H - 01H :_____0____1___0____0____ _______0___________;
(4) 7FH – 0FEH :___1____1___1____0____ _______1___________;
100B0H 100B1H 100B2H 100B3H 100B4H
2000H 2001H 2002H 2003H 2004H 2005H 2006H
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论