北京交通大学《微机原理与~接口技术》作业答案内容.doc
|目录微机原理与接口技术第一章作业 .2一、书上 P22 作业题 2、3、7 .2微机原理与接口技术第二章作业 .2一、书上 P59 作业题 2、5、6 、9、14 .2微机原理与接口技术第三章作业 .3一、书上 P95 作业题 4、5、6 、7、10、11、12、13 、14、15 、16、17、18 、22、27.4微机原理与接口技术第四章作业 .8一、课本 P155 8、12 、13、14 .8微机原理与接口技术第五章作业 .10一、作业 P180 2、5、7 、8 、9、10 .11微机原理与接口技术第六章作业 .13一、P207: 1, 3,5,10,14。18,19,20 .13微机原理与接口技术第七章作业(一) .17一、P268: 3, 6 , 7, 10 , 11 , 12.17微机原理与接口技术第七章作业(二) .20一、P268: 15 , 16 , 19, 21,25 .20微机原理与接口技术第八章作业 .24一、P292 6、 7 .24|微机原理与接口技术第一章作业一、书上 P22 作业题 2、3、72.完成下列数制之间的转换。(1)01011100B=92D(3)135D=10000111B(5)10110010B=262Q=B2H3.组合型 BCD 码和非组合型 BCD 码有什么区别?写出十进制数 254 的组合型 BCD 数和非组合型 BCD 数。答:组合型 BCD 码的储存格式用一个字节存放 2 位 BCD 码,高 4 位表示十进制的十位数,低 4 位表示十进制的个位数,数值表示范围为 099;非组合型的储存格式是用一个字节的低 4 位存放 1 位 BCD 码,高四位可以为 0 或任意数,数值表示范围为 09。254D 的组合型 BCD 码:001001010100254D 的非组合型 BCD 码:00000010 00000101 000001007.计算机中为什么采用补码的形式储存数据?当计算机的字长 n=16 时,补码的数据表示范围是多少?答:是为了便于进行加减运算,简化机器硬件结构。当 n=16 时,补码表示数值的范围是+32767-32768。微机原理与接口技术第二章作业一、书上 P59 作业题 2、5、6、9 、142、8086 标志寄存器包含哪些状态标志位?试说明各状态标志位的作用.答:6 个状态标志位:CF(Carry Flag)进位标志位。当执行一个加法(或减法)运算,使最高位产生进位(或借位)时,CF 为 1;否则为 0。PF(Parity Flag)奇偶标志位。该标志位反映运算结果中 1 的个数是偶数还是奇数。当指令执行结果的低 8 位中含有偶数个 1 时,PF=1;否则 PF=0。AF(Auxiliary carry Flag)辅助进位标志位。当执行一个加法(或减法)运算,使结果的低 4 位向高 4 位有进位(或借位)时,AF=1;否则 AF=0。ZF(Zero Flag)零标志位。若当前的运算结果为零,ZF=1;否则 ZF=0。SF(Sign Flag)符号标志位。它和运算结果的最高位相同。OF(Overflow Flag)溢出标志位。当补码运算有溢出时,OF=1;否则 OF=0。|3 个控制标志位:DF(Direction Flag)方向标志位。它用以指定字符串处理时的方向,当该位置“1”时,字符串以递减顺序处理,即地址以从高到低顺序递减。反之,则以递增顺序处理。IF(Interrupt enable Flag)中断允许标志位。它用来控制 8086 是否允许接收外部中断请求。若 IF=1,8086 能响应外部中断,反之则不响应外部中断。TF(Trap Flag)跟踪标志位。它是为调试程序而设定的陷阱控制位。当该位置“1”时,8086 CPU 处于单步状态,此时 CPU 每执行完一条指令就自动产生一次内部中断。当该位复位后,CPU 恢复正常工作。5、逻辑地址与物理地址有什么区别?如何将逻辑地址转换为物理地址? 答:物理地址是真实存在的唯一地址,指的是存储器中各个单元的单元号;逻辑地址是思维性的表示,由段地址和偏移地址联合表示的地址类型叫逻辑地址。物理地址=段地址×10H偏移地址。6、写出下列逻辑地址的段基址、偏移地址和物理地址。(1)2314H:0035H (2)1FD0H:000AH 答:(1)段基址:2314H偏移地址:0035H物理地址:23175H。 (2)段基址:1FD0H偏移地址:000AH物理地址:1FD0AH。 9、设一个 16 字的数据区,它的起始地址为 70A0H:DDF6H(段基址:偏移地址) ,求这个数据区的首字单元和末字单元的物理地址。答:首字:70A0*10H+DDF6H=7E7F6H末字:7E7F6H+(16-1)*2=7E814H。 14、80486CPU 存储器最大可寻址空间是多少?虚拟存储空间是多少?两者有何区别? 答:最大可寻址空间是 4GB,虚拟存储空间是 64TB。可寻址空间是实地址,虚拟存储空间是外部存储管理器。微机原理与接口技术第三章作业|一、书上 P95 作业题 4、5、6 、7、10 、11、12、13、14 、15、16、17、18、22 、274、指出下列指令中的源操作数和目标操作数的寻址方式。(1)MOV BX,1000H 源操作数:立即寻址;目标操作数:寄存器寻址(2)MOV AL,BX 源操作数:寄存器间接寻址;目标操作数:寄存器寻址(3)MOV CX,BP+10H 源操作数:寄存器相对寻址;目标操作数:寄存器寻址(4)MOV AL,ES:BX+SI 源操作数:基址加变址寻址;目标操作数:寄存器寻址(5)MOV DI+1000H,BX 源操作数:寄存器寻址;目标操作数:寄存器相对寻址 (6)MOV 1000H,CX 源操作数:寄存器寻址;目标操作数:直接寻址 (7)MOV AL,BX+DI+1234H 源操作数:寄存器相对寻址;目标操作数:寄存器寻址(8)MOV AL,1000HBX+SI 源操作数:寄存器相对寻址;目标操作数:寄存器寻址(9)MOV EBX+ESI+2010H,DX 源操作数:寄存器寻址;目标操作数:带位移的基址加变址寻址(10)MOV AX,0100HEBX+ESI*4 源操作数:基址加比例变址寻址;目标操作数:寄存器寻址5、设(DS)=2000H、 (ES)=2100H、 (SS)=1500H、 (BX)=0100H、 (BP)=0040H、 (SI)=00A0H、 (DI)=0120H,在指令 MOV AX,src 中,求用下列表示源操作数 src 的有效地址EA 和物理地址 PA 各是多少?(1)100HBX EA=(100H+0100H)=0200H ; PA=2000*10H+0200H=20200H (2)ES:BX+DI EA=0100H+0120H=0220H ;PA=2100*10H+0220H=21220H (3)BP EA=0040H ; PA=1500*10H+0040H=15040H(4)ES:BX+10H EA=0100H+0010H=0110H ;PA=21000H+0110H=21110H (5) BP+SI EA=0040H+00A0H=00E0H ; PA=1500*10H+OOEOH=150E0H (6) 1000H EA=1000H ; PA=2000*10H+1000H=21000H|(7) ES:DI EA=0120H ; PA=2100*10H+0120H=21120H(8) 1050HBX+SI EA=1050H+0100H+00A0H=11F0H ; PA=2000*10H+11F0H=211F0H(9) DS:10C0HBP+SI EA=10C0H+0040H+00A0H=11A0H ; PA=2000*10H+11A0H=211A0H(10) BX+DI EA=0100H+0120H=0220H ; PA=2000*10H+0220H=20220H6、指出下列指令中的错误,并改正。(1)MOV BL,30A0H 操作数不匹配改:MOV BX,30A0H(2)MOV 0010H,AL 立即数不可以作为目标操作数改:MOV AX,0010H (3)XCHG AL,BX 操作数类型不匹配改:XCHG AX,BX(4)MOV AX,3456H 立即数送入存储器需要说明改:MOV WORDPTR AX,3456H (5)PUSH AL 堆栈以字为操作单元改:PUSH AX(6)POP CS POP 不可以用 CS 为目标操作数改:POP AX (7)MOV DS,1000H 立即数不能直接送入段寄存器改:MOV AX,1000H MOV DS,AX(8)MOV BX,1000H存储器不可以相互传送改:MOV AX,1000H MOV BX,AX(9)LDS (BX) ,1000HLDS 使用时期目标为 16 位通用寄存器改:LDS BX,1000H (10)LEA BX,CX LEA 源操作数为存储器改:LEA BX,CX7、已知(AX)=4A0BH,1020H单元中的内容为 260FH,写出下列每条指令单独执行后的结果。(1)MOV AX,1020H ; (AX)=1020H (2)XCHG AX, 1020H ; (AX)=260FH (3)MOV AX,1020H ; (AX)=260FH(4)LEA AX,1020H ; (AX)=1020H|10、设一个堆栈段共有 100H 个字节单元,堆栈的起始地址为 1250H:0000H,若在堆栈中存有 5 个字数据,问:(1)栈顶的物理地址多少?栈底:12600H(2)栈底的物理地址是多少? 栈顶:12600-A=125F6H(3)当前 SS 和 SP 的内容是多少?SS:1250H:0000H SP: 1250H:00F6H (4)若弹出两个数据,SP 的内容是多少? SP:1250H:00FAH 11、编程完成下列程序段,根据运算结果置标志位 OF、SF、ZF、AF、PF、CF,并分析程序执行结果是否正确?为什么?(设字长 n=8) (1)30+64(2)122-64 (3)96+52(4)-68+(-72) 答:(1) MOV AL,30 MOV BL,64 ADD AL,BL结果:0101111O F=0 SF=0 ZF=0 AF=0 PF=1 CF=0 (2) MOV AL,122 MOV BL,64 SUB AL,BL结果:00111010 OF=0 SF=0 ZF=0 AF=0 PF=1 CF=0 (3) MOV AL,96 MOV BL,52 ADD AL,BL结果:10010100 F=0 SF=0 ZF=0 AF=0 PF=1 CF=0 |(4) MOV AL,-68 MOV BL,-72 ADD AL,BL结果:01110100 OF=1 SF=0 ZF=0 AF=1 PF=1 CF=117、判断下列指令格式的对与错,并解释错在哪里。 (1)ADD 25H,AX (×)目标操作数不可以为立即数 (2)INC BX,1 (×)INC 只有目标操作数(3)MUL AL,BL (×)乘法指令目标操作数是隐含的 (4)SUBB AL,3 (×)减法指令是 SUB (5)DAA AL (×)DAA 后无操作数(6)NEG CX,0 (×)NEG 后只有目标操作数 (7)CMP BX,1000HBX+SI ()18、设(AL)=10010010B,将 AL 的内容算术右移 2 位,AL 的内容和 CF 是多少?再将 AL 的内容逻辑右移 2 位,AL 的内容和 CF 是多少?算术右移 2 位 AL:11100100 CF:1逻辑右移 2 位 AL:00100100 CF:122、写出下列程序段执行后的结果。 MOV CL,4 MOV AL,87 MOV DL,AL AND AL,0FH OR AL,30H SHR DL,CL OR DL,30H (AL)=37H, (DL)= 35H27、试用 CMP 指令和条件转移指令实现下列判断 (1)AX 和 CX 中的内容为无符号数:若(AX)>(CX)则转至 BIGGER 符号执行;若(AX)(DX)则转至 BIGGER 符号执行;若(BX)<(DX)则转至 LESS 符号执行。 CMP BX,DX JG BIGGER JL LESS微机原理与接口技术第四章作业一、课本 P155 8、12、13、148、按下列的要求写出段定义格式。(1)数据段的位置从 0E000H 开始,在该段中定义的 5 个字节数据,3 个字数据,2双字数据,要求字节数据从偏移地址 0000H 开始,字数据从偏移地址 0010H 开始,双字数据从偏移地址 0020H 开始。(2)堆栈段定义 100 个字节(3)代码段的开始位置给有关段寄存器赋值,在程序结束时能够返回 DOS。 DATA SEGMENTORG 0000HD1 DB 00H,01H,02H,03H,04H ORG 0010HD2 DW 0000H,0010H,0020H ORG 0020HD3 DD 3 DUP(?)DATA ENDSSTACK SEGMENT STACK |DB 100 DUP(?)STACK ENDSCODE SEGMENT CODE ASSUME CS:CODE,DS:DATA START :MOV AH,4CHINT 21HCODE ENDS ENDS START12、定义数据段如下,画出数据存储示意图,并说明变量 X1 和 X2 所对应的逻辑地址各是多少?DATA SEGMENT AT 10A0H ORG 0010HX1 DB 22,33, ORG $+ 0020HX2 DB AB12CD DATA ENDSX1 的逻辑地址:10A0H:0010H X2 的逻辑地址:10A0H:0032H . . . 16H21H41H42H31H32H43H44H10A00H10A10H10A32H|13、定义数据段如下,写出执行以下指令后的结果。 DATA SEGMENT DA1 DW 2437H ,14A2H DA2 DB ABCD DA3 DD 10 DUP (?) DATA ENDS (1)MOV BX,DA1 ;(BX)=2437H (2)MOV SI,OFFSET DA1 ;(SI)=0000H (3)MOV AL, TYPE DA1 ;(AL)=2 (4)MOV AL,DA2+02H ;(AL)=C=43H (5)MOV AL,LENGTH DA3 ;(AL)=10 (6)MOV AL,SIZE DA3 ;(AL)=10 14、程序中数据段定义的数据如下:DATA SEGMENT NAMES DBGOOD MORNING! DW 2050H,78H,3080H DATA ENDS 请指出下列指令序列执行后累加器中的结果是多少? (1) MOV BX,OFFSET NAMES MOV AL,BX+03H (2) MOV BX,12 MOV SI,3 MOV AX,NAMESBX+SI (3) MOV BX,12 MOV SI,3 LEA AX,NAMESBX+SI 答:(1)44H (2)78H (3)0FH