1、习题 1:1. 微机基本结构是什么?微处理器、微型计算机、微型计算机系统有何区别?2. 用二进制补码表示-41、+74 、112?3. 数值转换:114.175= ( ) 2=( )1611001.101B= ( )16= ( )104. 计算机内有一个字节代码 10110110B(1) 若把它作为无符号数,则与之对应的十进制是( ) ;(2) 若把它作为有符号补码,则与之对应的十进制是( ) ;(3) 若把它作为 ASCII 码,而且最高位为奇偶校验位,则采用的是奇校验还是偶校验?该值是什么字符的 ASCII 码?ASCII 码主要用于做什么?(4) 若把它作为非压缩 BCD 码,则对应的十
2、进制数为( )?注:奇、偶校验的概念 校验位与数值位中 1 的个数为偶数,则是偶校验 校验位与数值位中 1 的个数为奇数,则是奇校验(5) 8086 中 PF 标志对运算结果的低 8 位进行校验,请问采用的是奇校验还是偶校验?5. 在计算机中有符号字节数 X=20H, Y=90H,请问 X+Y=?结果是否有溢出;XY=?结果是否有溢出 。6. 计算机中有符号数如何表示,一个字的有符号数范围是多少?7. 什么是总线,微机中按什么原则来使用总线?8. 总线按照功能分为那几类总线?按照在计算机中所处的位置又分为那几类总线?ISA、 EISA、PCI 三种局部总线有何特点?9. 计算机总线连接时为什么
3、需要使用三态电路和锁存器?选作题:10. CISC 架构的计算机与 RISC 架构的计算机有何区别?11. 浮点数在计算机中以何种格式进行存储?请举例说明习题 1 答案:1. 微机的基本结构包括主机和外设,主机又包括 CPU、存储器、I/O 接口和总线,外设包括输入设备和输出设备;微处理器主要指 CPU;微型计算机包括主机和外设,其中主机包括微处理器,主要针对硬件部分;微型计算机系统包括微型计算机和软件系统,能够独立运行。2. -41 = (11010111)2 +74 = (01001010)2 -112 = ( 10010000 )23. 数值转换: 114.175= ( 0111 001
4、0. 0011 ) 2=( 72.3 )16 (近似值)11001.101B= ( 19.A )16= ( 25.625 )104. 182;-74;奇校验, 6,ASCII 用于计算机与外部交换信息;6;奇校验5 . X + Y 00100000+ 10010000= 10110000 结果不溢出X Y 00100000- 10010000= 10010000 结果溢出6计算机中有符号数用补码表示,一个字的范围是-32768 327677. 总线是用于传输信息的一组通信线;微机中按照分时复用原则使用总线; 8. 按照功能分为:地址总线、数据总线和控制总线;按照位置分为:CPU 总线、局部总线
5、、系统总线和外部总线ISA 总线 宽度为 16 位,频率为 8MHz,传输率为 16MB/SEISA 总线是 ISA 总线的增强,宽度 32 位,频率 8MHz,传输率为 32MB/sPCI 总线 总线宽度 32 位,可扩展到 64 位,总线频率 33MHz,也可提高到 66MHz,传输率为 132MB/s,可扩展到 528MB/s,支持即插即用9. 使用三态门可以增加驱动,用作数据输入到总线时的缓冲,当需要总线时,打开三态门,传送数据;不需要总线时,关闭三态门,输出为高阻状态,以便别的器件可以使用总线,因此多个器件接入总线时,一定要使用三态电路;使用 D 触发器可以进行信号保持,用作信息输出
6、时的锁存习题 2:1. 在 8086 微处理器中执行如下指令后,标志寄存器中状态标志为何值?MOV DX, 6E07HSUB DX, 800AH2. 8086 管理的最大存储器空间和 I/O 端口空间是多少,写出地址范围? 为什么 8086 对存储器要采用分段管理?3. 若程序执行之前,CSE000H 和 IPFE60H,则该程序入口物理地址是多少?指向这个入口地址的 CS 和 IP 的值是唯一的吗?4. 请画出 8088 最小模式下的总线连接电路?要求包含 8282 、8284 、8286。 (注意 8086 与 8088 处理器的三点区别)5. 8086 的 RESET 引脚是什么信号有效
7、? 8086 复位后各寄存器的值是多少?指令队列的状态是什么?CPU 执行的第一条指令物理地址是多少?6. 8086/8088 可以响应可屏蔽中断和非可屏蔽中断,可屏蔽中断由_引脚的_电平使申请有效,FLAG 中的_标志可以控制 CPU 是否响应这种中断,可屏蔽中断响应时,CPU 使_引脚为 _电平表明响应中断;非屏蔽中断申请输入端为_引脚,该引脚是 _信号有效。7. 8086 CPU 在最小模式下 M/IO 高电平且 RD 低电平的可能操作为_(多选)(A) 取指令操作 (B) 从外设输入数据(C) 向存储器写数据 (D) 从存储器读数据8. 8086 微处理器中,数据段由段寄存器_指示,堆
8、栈段由段寄存器_指示,寄存器 CS:IP 总是指示_地址,一般情况下,取出一个字节指令后,寄存器_会自动加 1。在硬件上可以用 _和_来改变 IP 的内容,在软件上可以通过_和_来改变 IP 的内容。9. 如图所示,8086 工作在最小模式,且 AL = 80H,执行 MOV 1000H, AL指令过程中(假设 DS = 0000H) ,请问 1000H 和 80H 两个数分别在什么时候,出现在 8086 CPU 的那些引脚上?选作题:1. 80386 内部包括那 6 个功能部件?80386 有那三种工作方式?2. 80386 如何在 8086 的基础上扩展了数据寄存器和地址指针寄存器?3.
9、80386 有多少根地址线和数据线?其最大寻址范围是多少?80386 对存储器如何采用分段和分页管理?4. 80386 的虚拟存储机制是什么样的?1. 8086 微处理器内部包括执行单元 EU 和总线接口单元 BIU,请简要说明两个部分主要功能是什么?请指出下列哪些部分属于 EU,哪些部分属于 BIU?(8 分)1)段寄存器 CS、DS、ES、SS 2)预取指令缓冲队列3)地址指针寄存器 SP、BP、SI、DI 4)指令译码及控制5)数据寄存器 AX、BX、CX、DX 6)指令指针寄存器 IP7)20 位物理地址加法器 8)总线接口控制电路9)算术逻辑单元 ALU 10)标志寄存器 FLAG
10、属于 EU 的有 _、_ 、_、_、_属于 BIU 的有_、_ 、_、_、_2. 按照图 4-1 连接,8088 从存储器读取数据,若 DS=B000H,则执行指令 MOV AL, E000H时,8088 需要执行以下一系列处理,请标明处理的先后顺序。 (6 分)A. CPU 发读命令;B. BIU 形成 20 位物理地址;C. BIU 将系统数据总线上的数据送到 CPU 内部总线,EU 从内部总线获得数据;CLKM /IOA19A16BHEALEWRDT /RDENT1 T2 T3 T4地址地址 数据AD15AD0S3 S6D. EU 计算得到有效地址,并传送给 BIU;E. 存储器将被选中
11、单元的内容送系统数据总线;F. CPU 输出物理地址,经锁存后传送到地址译码器,选择相应存储器;先后顺序为:_、_、_、_、_、_。5.习题 3:1、8086 系统中,请说明下列指令的源操作数的寻址方式是什么?1)MOV AX, 1234H2)MOV AX, 1234H3)MOV AX, BX4)MOV AX, 1234HBX + SI5)MOVSB6)IN AL, DX2、请在下表中画出下列数据段以十六进制表示的各单元值(表格中每个单元表示一个字节) ,并写出变量 var1, var2, var3 的偏移地址和 cnt 的值。data SEGMENT paraORG 30Hvar1 DB -
12、2, A, 2 dup(23)var2 DW -1cnt EQU $-var1var3 DW var2data ENDS3、以下程序实现将变量 var 进行 var*10+600 的操作,并将计算结果保存在变量 result 中,当程序执行到地址 M5 的时候,请在以下表格中画出当前堆栈指针的位置和堆栈里的内容(程序断点可以用标号,在堆栈中可用寄存器名代表保存的内容,SS 的内容不用指定,表格的每个单元表示一个字) 。 (6分)data segment 低地址高地址0030H高地址低地址var dw 1000result dd ?data endssseg segment stackdb 10
13、0 dup(?)sseg endscode segment assume cs:code, ds:data, ss:ss_segmain proc farpush dsmov ax, 0push axmov ax, datamov ds, axmov ax, varM1:call CaculateM2:dw 10M3:dw 600M4:lea bx, resultmov bx, axmov bx+2, dxretmain endpCaculate procpush bpmov bp, sppush sipush bxmov bx, bp+2mov si, cs:bxmul siM5:add a
14、x, cs:2bxadc dx, 0add bx, 4mov bp+2, bxpop bxpop sipop bpretCaculate endpcode endsend main4、问答题1)若 AL = 81H,则执行指令 CBW 后 AH 的内容为多少?2)若 BL = BEH,执行下列指令序列,则每执行一步,BL 和 CF 的值为多少?SHL BL, 1 ;BL = _, CF = _MOV CL, 2SHR BL, CL ; BL = _, CF = _OR BL, 80SAR BL, 1 ; BL = _, CF = _ROR BL,CL ; BL = _, CF = _INC C
15、LRCL BL, CL BL = _, CF = _3)什么是短跳转、近跳转、远跳转?4)若当前 SP = 1000H,CS = B000H ,IP = 0100H,且当前 FLAG = 2345H,则执行指令 INT 21H 以后,SP 的值变为多少?堆栈段中 6 个存储单元 0FFFH、0FFEH、0FFDH、0FFCH、0FFBH、0FFAH 的值分别是多少?5、请写出程序段实现下列功能例如:从 160H 端口读取 1 个字节MOV DX, 160HIN AL, DX1) 将一个 8 位数 20H 写入到地址为 20H 的端口;2) 若 AL = 56H, BL = 57H,将这两个压缩
16、格式 BCD 码相加并将结果保存到存储单元2000H 中;3) 将 2 个 32 位无符号数 DAT1 和 DAT2 相乘,结果保存在 64 位无符号数中,请编写程序段。4) 求数据段偏移地址为 1000H 开始的一个字符串的长度,字符串以ASCII 码 0 为结束符,长度要求包括结束符;(提示:初始化 AL = 0 CX = 0FFFFH,然后使用 REPNZ SCASB 命令,最后根据CX 的值计算字符串长度)习题 3:1、8086 系统中,请说明下列指令的源操作数的寻址方式是什么?1)MOV AX, 1234H 立即数寻址2)MOV AX, 1234H 直接寻址3)MOV AX, BX
17、寄存器间接寻址4)MOV AX, 1234HBX + SI 相对基址变址寻址5)MOVSB 数据串寻址6)IN AL, DX I/O 端口间接寻址2、请在下表中画出下列数据段以十六进制表示的各单元值(表格中每个单元表示一个字节) ,并写出变量 var1, var2, var3 的偏移地址和 cnt 的值。data SEGMENT paraORG 30Hvar1 DB -2, A, 2 dup(23)var2 DW -1cnt EQU $-var1var3 DW var2data ENDS低地址高地址0030H FEH41H32H33H32H33HFFHFFH36H00Hvar1: 0030H
18、var2:0036H var3:0038H cnt = 83、以下程序实现将变量 var 进行 var*10+600 的操作,并将计算结果保存在变量 result 中,当程序执行到地址 M5 的时候,请在以下表格中画出当前堆栈指针的位置和堆栈里的内容(程序断点可以用标号,在堆栈中可用寄存器名代表保存的内容,SS 的内容不用指定,表格的每个单元表示一个字) 。 (6 分)data segment var dw 1000result dd ?data endssseg segment stackdb 100 dup(?)sseg endscode segment assume cs:code, d
19、s:data, ss:ss_segmain proc farpush dsmov ax, 0push axmov ax, datamov ds, axmov ax, varM1:call CaculateM2:dw 10M3:dw 600M4:lea bx, resultmov bx, axmov bx+2, dxret高地址低地址DS0M2BPSIBXmain endpCaculate procpush bpmov bp, sppush sipush bxmov bx, bp+2mov si, cs:bxmul siM5:add ax, cs:2bxadc dx, 0add bx, 4mov bp+2, bxpop bxpop sipop bpretCaculate endpcode endsend main4、问答题1)若 AL = 81H,则执行指令 CBW 后 AH 的内容为多少? AH = 0FFH2)若 BL = BEH,执行下列指令序列,则每执行一步,BL 和 CF 的值为多少?SHL BL, 1 ;BL = _7CH_, CF = _1_MOV CL, 2SHR BL, CL ; BL = _1FH_, CF = _0_OR BL, 80SAR BL, 1 ; BL = _CFH_, CF = _1_ROR BL,CL ; BL = _F3H_, CF = _1_