IBM-PC汇编语言程序设计课后习题答案(第二版_沈美明).pdf
《IBM-PC汇编语言程序设计课后习题答案(第二版_沈美明).pdf》由会员分享,可在线阅读,更多相关《IBM-PC汇编语言程序设计课后习题答案(第二版_沈美明).pdf(227页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 一 章1.1 用降幕法和除法将下列十进制数转换为二进制数和十六进制数:(1)3 69 (2)1 0 0 0 0 (3)40 9 5(4)3 2 767答:(1)3 69=1 0 1 1 1 0 0 0 1 B=1 71 H(2)1 0 0 0 0=1 0 0 1 1 1 0 0 0 1 0 0 0 0 B=2 71 0 H(3)40 9 5=1 1 1 1 1 1 1 1 1 1 1 1 B=FFFH(4)3 2 767=1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1)1 0 1 1 0 1 (2)1 0 0
2、0 0 0 0 0 (3)1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (4)1 1 1 1 1 1 1 1答:(1)1 0 1 1 0 1 B=2 D H=45(2)1 0 0 0 0 0 0 0 B=8 0 H=1 2 8(3)1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 B=FFFFH=6553 5(4)1 1 1 1 1 1 1 1 B=FFH=2 551.3将下列十六进制数转换为二进制数和十进制数:(1)FA (2)5B (3)FFFE (4)1 2 3 4答:(1)FA H=1 1 1 1 1 0 1 0 B=2 50(2)5B H=1 0 1
3、1 0 1 1 B=9 1(3)FFFE H=1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 B=6553 4(4)1 2 3 4H=1 0 0 1 0 0 0 1 1 0 1 0 0 B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1)3 A+B 7(2)1 2 3 4+A F(3)A B C D-FE (4)7A B X 6F答:(1)3 A+B 7H=F1 H=2 41(2)1 2 3 4+A FH=1 2 E 3 H=48 3 5(3)A B C D-FE H=A A C FH=43 72 7(4)7A B X 6FH=3 53 2 5H=2 1
4、 78 9 31.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。(1)(-8 5)+76(2)8 5+(-76)(3)8 5-76(4)8 5-(-76)(5)(-8 5)-76(6)-8 5-(-76)答:(1)(-8 5)+76=1 0 1 0 1 0 1 1 B+0 1 0 0 1 1 0 0 B=llll 0 1 1 1 B=0 F7H;C F=0;0 F=0(2)8 5+(-76)=0 1 0 1 0 1 0 1 B+1 0 1 1 0 1 0 0 B=0 0 0 0 1 0 0 1 B=0 9 H;C F=1;0 F=0(3)8 5-76=0
5、 1 0 1 0 1 0 1 B-0 1 0 0 1 1 0 0 B=0 1 0 1 0 1 0 1 B+1 0 1 1 0 1 0 0 B=0 0 0 0 1 0 0 1 B=0 9 H;C F=0;0 F=0(4)8 5-(-76)=0 1 0 1 0 1 0 1 B-1 0 1 1 0 1 0 0 B=0 1 0 1 0 1 0 1 B+0 1 0 01 1 O O B=1 O 1 O O O O 1 B=O A 1 H;C F=0;0 F=l(5)(-8 5)-76=1 0 1 0 1 0 1 1 B-0 1 0 0 1 1 0 0 B=1 0 1 0 1 0 1 1 B+1 0 1
6、1 0 1 0 0 B=0 1 0 1 1 1 1 1 B=5FH:C F=0;0 F=l(6)-8 5-(-76)=1 0 1 0 1 0 1 1 B-1 0 1 1 0 1 0 0 B=1 0 1 0 lO U B+0 1 0 01 1 0 0 B=1 1 1 1 0 1 1 1 B=0 F7H;C F=0;0 F=01.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1)D 8 (2)FF答:(1)D 8 H表示的带符号数为-40,D 8 H表示的无符号数为2 1 6;(2)FFH表示的带符号数为-1,FFH
7、表示的无符号数为2 55。1.7下列各数均为用十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字符的A S C II码时,它们所表示的十进制数及字符是什么?(1)4F(2)2 B (3)73 (4)59答:(1)4FH表示的十进制数为79,4FH表示的字符为0;(2)2 B H表示的十进制数为43,2 B H表示的字符为+;(3)73 H表示的十进制数为1 1 5,73 H表示的字符为s;(4)59 H表示的十进制数为8 9,59 H表示的字符为Y。1.8请写出下列字符串的A S C H码值。For ex ample,T h i s i s a number 3 69 2.
8、答:46H 6FH 72 H 2 0 H 65H 78 H 61 H 6D H 70 H 6C H 65H 2 C H O A H O D H54H 68 H 69 H 73 H 2 0 H 69 H 73 H 2 0 H 61 H 2 0 H 6E H 75H 6D H 62 H 65H 72 H 2 0 H 3 3 H3 6H 3 9 H 3 2 H 2 E H O A H O D H第二章2.1在8 0 x 8 6微机的输入/输出指令中,I/O端口号通常是由D X寄存器提供的,但有时也可以在指令中直接指定O O FFH的端口号。试问可直接由指令指定的I/O端口数。答:可直接由指令指定的I
9、/O端口数为2 56个。2.2有两个1 6位字1 E E 5H和2 A 3 C H分别存放在8 0 x 8 6微机的存储器的O O O B O H和0 0 0 B 3 H单元中,请用图表示出它们在存储器里的存放情况。答:存储器里的存放情况如右下图所示:O O O B O H E 5H0 0 0 B 1 H 1 E H0 0 0 B 2 H0 0 0 B 3 H 3 C H0 0 0 B 4H 2 A H2.3在IB M P C机的存储器中存放信息如右下图所示。试读出3 0 0 2 2 H和3 0 0 2 4H字节单元的内容,以及3 0 0 2 1 H和3 0 0 2 2 H字单元的内容。3 0
10、 0 2 0 H 1 2 H3 0 0 2 1 H 3 4H3 0 0 2 2 H A B H3 0 0 2 3 H C D H3 0 0 2 4H E FH答:3 0 0 2 2 H字节单元的内容为A B H;3 0 0 2 4H字节单元的内容为E FH。3 0 0 2 1 H字单元的内容为A B 3 4H;3 0 0 2 2 H字单元的内容为C D A B H。2.4 在实模式下,段地址和偏移地址为3 0 1 7:0 0 0 A 的存储单元的物理地址是什么?如果段地址和偏移地址是3 0 1 5:0 0 2 A 和 3 0 1 0:0 0 7A 呢?答:3 0 1 7:0 0 0 A.3 0
11、 1 5:0 0 2 A 和 3 0 1 0:0 0 7A 的存储单元的物理地址都是3 0 1 7A H。2.5 如果在一个程序开始执行以前(C S)=0 A 7F0 H,(如1 6进制数的最高位为字母,则应在其前加一个0)(IP)=2 B 40 H,试问该程序的第一个字的物理地址是多少?答:该程序的第一个字的物理地址是0 A A A 40 H。2.6在实模式下,存储器中每一段最多可有1 0 0 0 0 H个字节。如果用调试程序D E B U G的r 命令在终端上显示出当前各寄存器的内容如下,请画出此时存储器分段的示意图,以及条件标志O F、S F、Z F、C F的值。O debug-rA X
12、=0 0 0 0 B X=0 0 0 0 C X=0 0 79 D X=0 0 0 0 S P=FFE E B P=0 0 0 0S I=0 0 0 0 D I=0 0 0 0 D S=1 0 E 4 E S=1 0 F4 S S=2 1 F0 C S=3 1 FFIP=0 1 0 0 N V U P D I P L N Z N A P O N C答:此时存储器分段的示意图如右图所示。O F、S F、Z F、C F的值都为0。2.7下列操作可使用那些寄存器?(1)加法和减法数据寄存器等(2)循环计数C X(3)乘法和除法A X、D X,乘数和除数用其他寄存器或存储器(4)保存段地址段寄存器(5
13、)表示运算结果为0 Z F=1(6)将要执行的指令地址C S:IP(7)将要从堆栈取出数据的地址S S:S P答:答案见题目的右边。2.8 那些寄存器可以用来指示存储器地址?答:B X、B P、S I、D I、堆栈操作时的S P、对应的段地址、3 8 6及其后继机型的E x x o2.9请将下列左边的项和右边的解释联系起来(把所选字母放在括号中):(1)C P U (M)A.保存当前栈顶地址的寄存器。(2)存 储 器(C)B.指示下一条要执行的指令的地址。(3)堆 栈(D)C.存储程序、数据等信息的记忆装置,微机有R A M 和 R O M 两种。(4)I P (B)D.以后进先出方式工作的存
14、储空间。(5)S P (A)E.把汇编语言程序翻译成机器语言程序的系统程序。(6)状态标志(L)F.唯一代表存储空间中每个字节单元的地址。(7)控制标志(K)G.能被计算机直接识别的语言。(8)段寄存器(J)H.用指令的助记符、符号地址、标号等符号书写程序的语言。(9)物理地址(F)I.把若干个模块连接起来成为可执行文件的系统程序。(1 0)汇编语言(H)J.保存各逻辑段的起始地址的寄存器,80 86/80 88机有四个:C S D S、S S、E S o(1 1)机器语言(G)K.控制操作的标志,如 D F 位。(1 2)汇编程序(E)L.记录指令操作结果的标志,共 6 位:O F、S F、
15、Z F、A F、P F、C F o(1 3)连接程序(D M.分析、控制并执行指令的部件,由算术逻辑部件A LU 和寄存器等组成。(1 4)指 令(0)N.由汇编程序在汇编过程中执行的指令。(1 5)伪 指 令(N)0.告诉C P U 要执行的操作(一般还要指出操作数地址),在程序运行时执行。答:答案见题目的括号中。7)/7X)/77.X17)zX)/7)/)/234567空n234567z(/(/(/(/(/(夕匚z(z(z/tz(z(z(第三章3.1给定(B X)=6 3 7 D H,(S I)=2 A 9 B H,位移量D=7 2 3 7 H,试确定在以下各种寻址方式下的有效地址是什么?
16、(1)立即寻址直接寻址使用B X 的寄存器寻址使用B X 的简接寻址使用B X 的寄存器相对寻址基址变址寻址相对基址变址寻址(1)操作数在指令中,即立即数;E A=D=7 2 3 7 H;无 E A,操作数为(B X)=6 3 7 D H;E A=(B X)=6 3 7 D H;E A=(B X)+D=0 D 5 B 4 H;E A=(B X)+(S I)=8E 1 8H;E A=(B X)+(S I)+D=1 0 0 4 F H;超过了段的边界,最高进位位丢失,因此E A=0 0 4 F H。3.2 试根据以下要求写出相应的汇编语言指令(1)把 B X 寄存器和D X 寄存器的内容相加,结果
17、存入D X 寄存器中。(2)用寄存器B X 和 S I 的基址变址寻址方式把存储器中的一个字节与A L寄存器的内容相加,并把结果送到A L寄存器中。(3)用寄存器B X 和位移量0 B 2 H 的寄存器相对寻址方式把存储器中的一个字和(C X)相加,并把结果送回存储器中。(4)用位移量为0 5 2 4 H 的直接寻址方式把存储器中的一个字与数2 A 5 9 H 相加,并把结果送回存储单元中。(5)把数O B 5 H 与(A L)相加,并把结果送回A L中。答:A D D D X,B X(2)A D D A L,B X S I(3)A D D B X+0 B 2 H,C X(4)A D D WO
18、 R D P T R 0 5 2 4 H,2 A 5 9 H(5)A D D A L,0 B 5 H3.3 写出把首地址为B LO C K的字数组的第6个字送到D X 寄存器的指令。要求使用以下儿种寻址方式:(1)寄存器间接寻址(2)寄存器相对寻址(3)基址变址寻址答:(1)MOV BX,OFFSET BLOCKADD BX,(6-1)*2MOV DX,BX(2)MOV BX,OFFSET BLOCK 改为:MOV BX,(6-1)*2MOV DX,BX+(6-1)*2也可 MOV DX,BLOCK BX(3)MOV BX,OFFSET BLOCKMOV SI,(6-1)*2MOV DX,BX
19、SI3.4 现有(DS)=20 0 0 H,(BX)=O1OOH,(SI)=0 0 0 2H,(20 10 0 H)=12H,(20 10 1H)=34H,(20 10 2H)=56H,(20 10 3H)=78H,(2120 0 H)=2AH,(2120 1H)=4CH,(2120 2H)=B7H,(2120 3H)=65H,试说明下列各条指令执行完后AX寄存器的内容。MOV AX,120 0 HMOV AX,BXMOV AX,120 0 HMOV AX,BXMOV AX,110 0 BXMOV AX,BXSIMOV AX,110 0 BXSI(1)(AX)=120 0 H(AX)=0 1O
20、OH(AX)=4C2AH(AX)=3412H(AX)=4C2AH(AX)=7856H(AX)=65B7H3.5 给定(IP)=2BC0 H,(CS)=0 20 0 H,位移量 D=5119H,(BX)=120 0 H,(DS)=212AH,(224A0 H)=0 60 0 H,(275B9H)=0 98AH,试为以下的转移指令找出转移的偏移地址。(1)段内直接寻址(2)使用BX及寄存器间接寻址方式的段内间接寻址(3)使用BX及寄存器相对寻址方式的段内间接寻址答:(1)JMP N EAR PTR 5119H;(IP)=5119H+(IP)+0 3H)=7CDCH,物理地址PA=0 9CDCH(I
21、P)+0 3H是JMP N EAR PTR 5119H指令的下一条指令的首地址。(2)JMP WORD PTR BX;(IP)=(DS)*10 H+(BX)=0 60 0 H,PA=0 260 0 H(3)JMP DBX;(IP)=(DS)*10 H+(BX)+D)=0 98AH,PA=0 298AH3.6设当前数据段寄存器的内容为1B0 0 H,在数据段的偏移地址20 0 0 H单元内,含有一个内容为0 FF10 H和 80 0 0 H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列,并画图表示出来。答:MOV BX,20 0 0 H;图示如上所示。MOV A
22、X,20 0 0 H+2X)/)/X)/)/X17)/|77)/X)/7X)/)/1234567空n234567/(z(z/lz(/IXz(/(XCLLz/(z(z(xz/(z(xz(MOV ES,AXMOV AX,ES:BX3.7 在 0 624H单元内有一条二字节JMP SHORT OBJ指令,如其中位移量为(1)27H,(2)6BH,(3)0 C6H,试问转向地址OBJ的值是多少?答:(1)0 BJ=0 624H+0 2H+27H=0 64DH(2)0 BJ=0 624H+0 2H+6BH=0 691H(3)0 BJ=0 624H+0 2H+0 C6H=0 5ECH;C6H对应的负数为-
23、3AH(向上转移,负位移量)3.8 假定(DS)=20 0 0 H,(ES)=210 0 H,(SS)=150 0 H,(SI)=OOAOH,(BX)=O1OOH,(BP)=0 0 1 OH,数据段中变量名VAL的偏移地址为0 0 50 H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1)MOV AX,OABH(2)MOV AX,BX(3)MOV AX,10 0 H(4)MOV AX,VAL(5)MOV AX,BX(6)MOV AX,ES:BX(7)MOV AX,BP(8)MOV AX,SI(9)MOV AX,BX+10 (10)MOV AX,VALBX(11)MOV AX,
24、BXSI(12)MOV AX,VALBXSI答:(1)立即方式;操作数在本条指令中(2)寄存器寻址方式;操作数为(BX)=0 10 0 H(3)直接寻址方式;PA=20 10 0 H(4)直接寻址方式;PA=20 0 50 H(5)BX寄存器间接寻址方式;PA=20 10 0 H(6)附加段BX寄存器间接寻址方式;PA=2110 0 H(7)BP寄存器间接寻址方式;PA=150 10 H(8)SI寄存器间接寻址方式;PA=20 0 A0 H(9)BX寄存器相对寻址方式;PA=20 110 H(10)BX寄存器相对寻址方式;PA=20 150 H(11)BX和 SI寄存器基址变址寻址方式;PA=
25、20 1A0 H(12)BX和 SI寄存器相对基址变址寻址方式;PA=20 1F0 H3.9在 ARRAY数组中依次存储了七个字数据,紧接着是名为ZERO的字单元,表示如下:ARRAY DW 23,36,2,10 0,320 0 0,54,0ZERO DW?(1)如果BX包含数组ARRAY的初始地址,请编写指令将数据0 传送给ZERO单元。(2)如果BX包含数据0 在数组中的位移量,请编写指令将数据0 传送给ZERO单元。答:(1)MOV AX,BX+(7-l)*2MOV BX+(7)*2,AX(2)MOV AX,ARRAY BXMOV ARRAY BX+2,AX3.1 0 如TABLE为数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IBM PC 汇编语言 程序设计 课后 习题 答案 第二 沈美明
限制150内