logo资料库

微机原理与接口技术课后题答案(哈尔滨工程大学版).doc

第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
资料共24页,剩余部分请下载后查看
4题
5题
6题
4题 省略
7825H
7825H
4—1
(1)目的操作数:寄存器寻址,源操作数:立即寻址
(5)目的操作数:寄存器寻址,源操作数:基址变址寻址
(9)目的操作数:寄存器寻址,源操作数:直接端口寻址
(7)数据类型不确定(字节还是字操作不清楚)
(9)立即数不能直接赋值给段寄存器
(2)AX=647AH
AX=0ABBH
AX=0ABBH
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,BCD1
CODE ENDS
END START
5-11
采用左移指令 或者用:
MOV BX,AX MOV BX,AX
SHL BX,1 ;乘2 MOV CL,3
MOV DX,AX SHL AX, CL
MOV CL,2 SUB AX,BX
SHL AX ,CL ;乘4
ADD AX,BX ;3倍
ADD AX,DX ;7倍
5-12
3228H
5-13
(1) AL=00 (2)AL=01H (3)AL=FFH
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV AL, BUFF
SUB20H: MOV AL,BUFF
SUB AL,20H
DAS
ADDSELF: MOV AL,BUFF
ADD AL,BUFF ;自加代替乘2
DAA
OUTT: MOV DES,AL
NEXT:MOV AH,4CH
INT 21H
END START
5-15
DATA SEGMENT
BUFER DW 1200H,1200H,1200H
FLAG DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE ,DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV AX,BUFER
CMP AX,BUFER+2 ;判断1和2是否相等
JZ TEST1EQU3
CMP AX,BUFER+4 ;判断1和3是否相等
JZ TWOEQU
MOV AX,BUFER+2
CMP AX,BUFER+4
JZ TWOEQU
MOV FLAG, 0
JMP OUTT
TEST1EQU3:CMP AX,BUFER+4
JZ ALLEQU
TWOEQU: MOV FLAG,01H ;两个数相等
JMP OUTT
ALLEQU: MOV FLAG,02H ;三个数相等
OUTT: MOV AH, 4CH
INT 21H
CODE ENDS
END START
5-16
(1) AX=55H CX=0
(2) 5,6,7,8,9
MOV DS, AX
MOV SI, 0
ASSUME DS:DATTA, CS:CODE
START: MOV AX, DATTA
MOV DS, AX
MOV SI, OFFSET NUMBER
LOOP LOP
MOV AH, 4CH
第一章 (0001 0010 1001)BCD (2)1039=40FH =010000001111B (4)0.15625D=0.00101000B=0.28H (0101 0110 0111 1000) BCD (0.1001 1000 0100) BCD (1001 0011.011101000101) BCD 1 题 (1)110=6EH=01101110B (3)0.75D=0.11B=0.CH 2 题 (1)129 注: 在计算机汇编程序中 BCD 码只能用 16 进制数表示,形式为 129H (2) 5678 (3) 0.984 (4) 93.745 3 题 (1) 10101010B=0AAH=170D (3) 11000011.01B=0C3.4H=195.25 4 题 (1)8E6H=100011100110B=2278 (3)7E.C5H=01111110.11000101B=126.769 (4)0F19.1DH=111100011001.00011101B=3865.11328 5 题 (1)1011011.101B=91.625D BCD 为 (10010001.011000100101) BCD (2)1010110.001B=86.125D BCD 为 (10000110.000100100101) BCD 6 题 (0010 0111 0011) BCD 表示的十进制数为 273 (1001 0111.0010 0101) BCD 表示的十进制数为 97.25 二进制数为 01100001.01B 7 题 (2)10000000B=80H=128D (4) 01111110B=7EH=126D (2)0A42H=101001000010B=2626 二进制数为 100010001B (1) 1001.11B + 11.11B 1101.10B 8 题 6AH + A6H 110H (2) 1101.01B - 0110.11B 0110.10B (3) 1000.011B 1001.101B 0110.110B - (4) 1111B - 1101B 0010B AB1 FH + 0 E FCH B A 1B H - 12ADH 01DEH 10C F H 117H - 0ABH 06 CH Y=0FFH=255 Y=0FFH= -1 9 题 (1)无符号数 X=01H =01D (2)符号数 X=01H =01D 注:对于同一个数到底是符号数还是无符号数是由程序设计者根据数据实际的意义决定的, 一旦定下来,在程序中采用不同的指令来区分符号数和无符号数,即算数运算指令会有符号 数和无符号两套指令。 10.题 (1)101+31H+69H+0D5H+(5*8+7)=531 (2)127.8125+189.625+253.9768+502.5390=1079.77344 11 题
‘A’ –‘Z ‘ ASCII 码 为 41H—5AH ‘a’---‘z’ ASCII 码 为 61H---7AH 12 题 (1) ‘E’ ASCII 码 为 45H 48454C4C4FH (2) ‘A8’ 4138H 01001001B 本身为奇数个 1 所以偶校验 D7 为 1,为 0C5H; 奇校验 D7 为 0,为 45H (2) ‘6’ ASCII 码 为 36H 00110110B 本身为偶数个 1 所以偶校验 D7 为 0,为 36H; 奇校验 D7 为 1,为 0B6H 13 题 -38=[10100110B]原=[11011001B]反 = [11011010B]补 -38=[1000000000100110B]原=[1111111111011001B]反 = [1111111111011010B]补 8 位 125=[01111101B]原=[01111101B]反 = [01111101B]补 125=[0000000001111101B]原=[0000000001111101B]反 = [0000000001111101B]补 8 位 -128= [10000000B]补 -128=[1000000010000000B]原=[1111111101111111B]反 = [1111111110000000B]补 原码和反码不能用 8 位表示 8 位 16 位 16 位 16 位 14 题 +0=[00000000B]原=[00000000B]反 = [00000000B]补 高 8 位补 0 为 16 位 8 位 -0=[10000000B]原=[11111111B]反 = [00000000B]补 -0=[1000000000000000B]原=[1111111111111111B]反 = [0000000000000000B]补 8 位 16 位 15 题 (1)[X]补=81H =[111111111]原=[10000000]反 真值为-127 (2)[X]补=800H=[1000100000000000B]原=[1111011111111111B]反 真值为-211 (3)[X]补=79H=[01111001B] 原=[01111001B]反 真值为 121 (4)[X]补=0FFFEH=[1000000000000010] 原=[1111111111111101]反 16 题 (1) [X]补=1000 0000 0000 0000B 真值为 -8000H=-32768 (2) [X]补=1111 1111 1111 1111B 真值为 -8000H=32768 (3) [X]补=0111 1111 1111 1111B 真值为 7FFFH=32767 (4) [X]补=0101 0101 0101 0101B 真值为 5555H=21845 17 题 原码 (-1) (-127) 8 位负数 10000001B-11111111B (+127) (+1) 8 位正数 00000001B-01111111B [+0] 原=000000000B [-0] 原=100000000B 反码 补码 (-1) (-127) 11111110B-1000000B (+127) (+1) 01111111B-00000000B [+0] 反=00000000B [-0] 反=11111111B (-128) (-1) 11111111B-1000000B (+1) 00000000B-01111111B [+0] 补=00000000B [-0] 补=00000000B (+127)
N 位的通式 –(2N-1-1)---+(2N-1-1) –(2N-1-1)---+(2N-1-1) –(2N-1)---+(2N-1-1) 18 题 (1) 不溢出 结果为 15 未超出 8 位补码的范围 (2) 不溢出 结果为-55 未超出 8 位补码的范围 (3) 溢出 结果为-132 超出 8 位补码的范围 (4) 不溢出 结果为-125 未超出 8 位补码的范围 19 题 (1) 27+11 00100111B +00010001B 00101000B (2) 37+29 00110111B +00101001 B 01100000B + 00000110B 01100110B 20 题 (1) 17.5=00010001.1B 规范化表示 0.100011× 25 浮点原码 0 0101 0 100011B 反码和原码相同 (2) -75.5 =-01001011.1B 规范化表示 -0.100101× 27(舍掉最低两位) 原码 0 0111 1 100101 B 补码 0 011 1 1 011011 B
第二章 1 题 省略 2 题 总线:计算机系统各部分之间传递地址、数据和控制信息的共同线路的集合。 总线结构的好处:物理上是同时可以挂多个设备,但是总线上某一个时刻只有一个设备传送 信息。 从空间上分为四类(是从 PC 机角度分类的)片内总线,片间总线(主总线,前端总线) , 系统总线(PCI ,ISA 等标准总线) ,系统间通讯总线。 标准总线好处:总线接口标准统一便于通用。 总线传递信息分为三大类:数据总线,地址总线,控制总线。系统总线等也由是三大总线组 成,只是根据不同的需要经过了变换。 3 题 总线接口单元(BIU) : 1)形成访问内存或者 I/O 端口的物理地址; 2)从内存的代码段中取指令送到队列缓冲器中; 3)读取操作数参加 EU 运算或则存放运算结果到指定地址。 执行单元(EU) 1) 从 BIU 的指令队列缓冲器中去指令进行译码、执行; 2) 负责所有的算术,逻辑运算及 16 位偏移地址计算; 3) 像 BIU 提供指令的执行结果和 16 位偏移地址。 二者同步进行操作,相当两级流水线,提高了效率。
4 题 省略 5 题 T1 时刻是地址信息,用 ALE 信号锁存。注:凡是有 ALE 信号的 CPU 的某些管脚都具 有分时复用的功能。(如 51 单片机,AVR 单片机等)。T3 时刻数据信息送出。通过地址锁 存器保持地址信息。数据放大器(驱动器),加强总线的带载能力。 6 题略 7 题 7825H + 5A1FH D244H 7825H -5A1FH 1E06H CF=0; OF=1; ZF=0; PF=1; AF=1; SF=1; CF=0; OF=0; ZF=0; PF=1; AF=1; SF=0; 8 题 最大模式:除了 8086/8088 处理器外还有协处理器 最小模式:系统只有 8086/8088 处理器 9 题 访问存储器使用到哪些信号: WR RD M/IO ALE AD0-AD15 A16/S3-A19/S6 等 10 题 一个指令周期至少包含一个总线周期(即:取指令读存取器的所花的总线周期),一个总线 周期包含 4 个时钟周,可会在 T3 后插入的等待周期。 11 题 省略 12 题 主要点为以下三点,有以下原因的前两点还会引申出来的其他区别,如执行指令的 效率。但是二者的程序是完全兼容的。 8086 8088 外部总线 16 位 队列缓冲字节 6 个 队列缓冲字节 4 个 M/IO 外部总线 8 位 IO/M 13 题 分时复用的信号,在总线周期前面出现的信号只要在后面的时钟周期还要维持其原来 信号稳定不变就都要进行锁存。 14 题 指令 队列缓冲 区使得 CPU 可以 取指和执 行指令并 行进行。 8086 复位 后 , CS=0FFFFH,其他寄存器为 0, 复位后程序指针指向了物理地址的 FFFF0H 的位置,一般 在此处都是一条跳转指令,由此处跳到用户的自己的监控程序的入口处(开始的地方)。此 特性具有通用性 15 题 实际地址(物理地址)是 20 位的,而内部数据总线是 16 位的,只能通过段加偏移的办法 段起始地址最低 4 位为 0。 16 题 地址线为 N,则寻址存储单位(字节)多少的关系为: 2N 。也可能为 4 位, 16 位 等 。 17 题
逻辑地址表示为 段地址:偏移地址 ,是在编程时使用,计算机也是利用他们二者来找到 实际地址的。 实际地址(物理地址)=段地址*16+偏移地址 段地址只是段起始地址(是一个段开始的物理地址,为 20 位)的高 16 位。 18 题 二者都是 1117AH,同一物理地址可以写成不同逻辑地址的形式,但在实际中一般 不会出现。 19 题 代码段的寻址就是通过 CS*16+IP ,所以指令存放的第一个字节单元的物理地址 A7B00H+2B50H=AA650H 20 题 100 字 200 字节 200=C8H 偏移从 2300H 开始, 21 题 22 题 字节数据 [123D4H]=78H 字数据 [123D4H]=5678H [123D6H]=34H [123D6H]=0E634H CS=1000H , DS=1100H ,SS=1180H 23 题 偶地址开始存放的字数据为规则字,奇地址开始存放的字数据为非规则字。
第四章 4—1 (1)目的操作数:寄存器寻址,源操作数:立即寻址 (2)目的操作数:寄存器寻址,源操作数:直接寻址 (3)目的操作数:寄存器间接寻址,源操作数:寄存器寻址 (4)目的操作数:寄存器寻址,源操作数:相对基址变址寻址 (5)目的操作数:寄存器寻址,源操作数:基址变址寻址 (6)目的操作数:寄存器寻址,源操作数:寄存器寻址 (7)目的操作数:寄存器间接寻址 (SP 寄存器指向的内存单元), 源操作数:寄存器寻址 H  80 10 H H DS SS DS ES DS SS DS ES 16  16  16   16   16   16  16   16  DI SI BP  10 BX  BX SI  FF SI  SP 2020 SI (8)目的操作数:寄存器寻址,源操作数:寄存器寻址 (9)目的操作数:寄存器寻址,源操作数:直接端口寻址 (10)目的操作数:间接端口寻址(端口的寄存器间接寻址),源操作数:寄存器寻址 (11)寄存器寻址 (12)目的操作数:相对寄存器寻址 4—2 (1) (2) (3) (4) (5) (6) (7) (8) 4—3 (1)类型不匹配(寄存器长度不一致) (2)CS 不能作目的操作数 (3)IP 不能作操作数 (4)立即数不能作目的操作数 (5)乘数不能是立即数 (6)两个存储器单元间不能用 MOV 指令直接交换数据 (7)数据类型不确定(字节还是字操作不清楚) (8)CUP 和 I/O 间数据交换,只能用 AX(AL)存放数据 (9)立即数不能直接赋值给段寄存器 (10)循环次数大于 1 放在 CL 寄存器 (11)CX 不能作寄存器间接寻址的寄存器 (12)立即数不能做入栈操作 4—4 (1)AX=1200H (2)AX=647AH (3)(10050H)=7DH,(10051H)=B7H, ZF=0,SF=1,CF=0,OF=0 (4)(12AD0H)=F7H,CF=0,OF=0
(5)(12BD0H)=31H,CH=31H (6)BH=C9H,ZF=0,SF=1,CF=1.OF=0 (7) (12A80H)=2BH,(12A81H)=89H,CF=1 4—5 (1) LEA BX , BUF(或 MOV BX ,OFFSET BUF) ADD BX, 8 MOV CX , [BX] (2) MOV BX ,OFFSET BUF(或 LEA BX , BUF) MOV CX , [BX+8] MOV BX ,8 MOV CX , BUF [BX] (3) MOV BX ,OFFSET BUF(或 LEA BX , BUF) MOV SI, 8 MOV CX , [BX+SI] 4—6 SP=100EH,AX=2468H,BX=2468H 0 0 4—7 (1)MOV AX , (2)AND AX , (3)XOR AX , AX (4)SUB AX , AX 4—8 AX=0ABCH AX=0ABBH AX=0ABBH CL=0004H AX=ABB0H CL=B0H CL=28H AX=ABB0H AX=ABB0H CL=0004H 4—9 AL=FFH BL 不变 CF=0 4—10 AX=3520H 4—11 两条指令的区别是指令执行后是否保留运算结果,前条指令执行后 AL 的值改 变后条指令中的 AL 的值不变。 SF=1,CF=1,ZF=0,OF=0 AX , A 4-12 以下程序中的 WORD PTR 都可以省略,因为变量的属性就是字。 (1)无符号数: MOV MUL WORD PTR C ; X*YDX,AX ; MOV MOV SUB ;直接加 0,拓展无符号数 Z 的高 16 位 CX , Z BX , 0 CX , AX
分享到:
收藏