《IBM-PC汇编语言__课后习题答案.pdf》由会员分享,可在线阅读,更多相关《IBM-PC汇编语言__课后习题答案.pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章基础知识1、用降幕法和除法将下列十进制数转换为二进制数和16 进制数。(1)36 9 (2)10000(3)4 09 5 (4)3276 7答案:0001B;171H(3)1111,1111,1111B 1;9 FFFH2、将下列二进制数转换为16 进制数和十进制效,(1)101101(2)10000000(3)111111111111111(4)111111答案:(1)2D H;4 5 D (3)0FFFFH;6 5 5 35 D3、将下列16 进制数转换为二进制数和十进制数。(D FA (2)5 B (3)FFFE (4)12D 4答案:(1)1111,1010B;25 0D (3)
2、1111,1111,1111,1110B;6 5 5 34 D5、下列各数均为十进制数,请用8 位二进制补码计算下列各题,并用16 进制数表示其运算结果。(1)(8 5)+76 (2)8 5 +(76)(3)8 5 76(4)8 5 (76)(5)(8 5)76 (6)(8 5)一(一 76)答案:(l)0F7H(2)9 H(4)O A 1H(5)5 FH(6)0F7H7、下列各数均为用16 进制表示的8 位二进制数,请说明当它们分别被看作是用补码表示的数或字符的A S C H 码时,它们所表示的十进制及字符是什么?(1)4 F(2)2B (3)73(4)5 9答案:(1)79 D;0(大写)
3、(2)4 3D;+(3)115 D;s(小写)(4)8 9 D;Y8、请写出下列字符串的A C S II码。For e x ample,T h is is a numb e r 36 9 2.答案4 6 6 F 72 20 6 5 78 6 1 6 D 70 6 C 6 5 2C 0A 0D 5 4 6 8 6 973 20 6 9 73 20 6 1 20 6 E 75 6 D 6 2 6 5 72 20 33 36 39第二章80 x86计算机组织2、有两个16 位字L E E 5 H和 2A 3c H分别存放在P C 机存储器的O O O B O H和 000B 3H单元中,请用图表示出
4、它们在存储器里的存放情况。答案:000B 4 H 2A HO O O B O HE 5 H000B 1H1E H000B 2H000B 3H3C H5、如果在一个程序段开始执行之前,(C S)=0A 7F0H,(IP)=2B 4 0H,试问该程序段的第一个字的物理地址是什么?答案:O A A A 4 0H6、存储器中的每一段最多可含有6 4 K个字节(1K=1O 24),假设用D E B U G命令显示出当前各寄存器的内容如下,请画出此时存储器分段的示意图,以及状态标志志O F、S F、ZF、C F的值。A D E B U GRA X=0000B P=0000S S=21F0B X=O O O
5、 OS I=0000C S =31F7C X =008 0D I=0000IP=0000D X=O O O O S P=O O O OD S=10E 4 E S=10F4N V U P D I P L N Z N A P O N C答案:O F、S F、ZF、C F 均为 0l数据段J附加段堆栈段代码段9、请将左边的词汇和右边的说明联系起来,括号内填入所选的A,B,C。C P U()A.保存当前栈顶地址的寄存器。存储器()B.指示下一条要执行的指令的地址。堆栈()C.存储程序、数据等信息的记忆装置,P C机有R A M和R O M两种。(4)IP()D.以后进先出方式工作的存储器空间。S P(
6、)E.把汇编语言程序翻译成机器语言程序的系统程序。(6)状态标志()F.唯一代表存储器空间中的每个字节单元的地址。控制标志()G.能被计算机直接识别的语言。(8)段 寄 存 器()H.用指令的助记符、符号地址、标号等符号书写程序的语言。(9)物 理 地 址()I.把若干个模块连接起来成为可执行文件的系统程序。(1 0)汇编 语 言()J.保存各逻辑段的起始地址的寄存器。P C机有四个寄存器C S、D S、S S、)/)/17712345X1X111A机器语言(汇编程序(连接程序(指令(伪 指 令()K.L.M.N.0.ES o控制操作的标志,如D F位记录指令操作结果的标志,共六位:OF、S
7、F、Z F、AF、P F、C F分析、控制并执行指令的部件,山算逻单元(A L U)和寄存器组等组成。由汇编程序在汇编过程中执行的指令。告 诉C P U要执行的操作(一般还要指出操作数地址),在程序运行时执行。答案1.(M)7.(K)2.(C)3.(D)8.(J)9.(F)1 3.(I)1 4.(0)1 5.4.(B)5.(A)6.(L)1 0.(H)1 1.(G)1 2.(E)(N)第 三 章 80X86的指令系统和寻址方式、给定(B X)=6 3 7D H,(S I)=2A 9B H,位移量D=723 7H,试确定在以下各种寻址方式下的有效地址是什么答案:(1)立即寻址没有(2)直接寻址7
8、23 7I I;M OV A X,723 7H(3)使用B X的寄存器寻址没有;M OV A X,B X(4)使用B X的间接寻址6 3 7D H;M OV A X,B X(5)使用B X的寄存器相对寻址0D 5B 4 H;M OV A X,D B X(6)基址变址寻址8E1 8H;M OV A X,B X S I(7)相对基址变址004 F I I;M OV A X,D B X S I 2、根据下列要求,写出相应的汇编指令(1)把B X寄存器和D X寄存器的内容相加,结果存入D X寄存器中。(2)用寄存器B X和S I基地址变址寻址方式把存储器中的一个字节与A L寄存器的内容相加,并把结果送
9、到A L寄存器中。(3)用寄存器B X和位移量OB 2H的寄存器相对寻址方式把存储器中的一个字和(C X)相加,并把结果送回存储器中。(4)用位移量为0524 H的直接寻址方式把存储器中的一个字与数2A 59H相加,并把结果送回该存储单元中。(5)把数OB 5H与(A L)相加,并把结果送回A L中。答案:(1)A D D D X,B X(2)A D D A L,B X S I(3)A D D B X 0B 2H ,C X(4)M OV A X,2A 59HA D D 0524 H ,A X(5)A D D A L ,0B 5H3、写出把首地址为B L OC K的字数组的第6个字送回到D X寄
10、存器的指令。要求使用以下几种寻址方式:(1)寄存器间接寻址(2)寄存器相对寻址(3)基址变址寻址答案:(1)寄存器间接寻址M OV B X,OF F S ET B L OC KA D D B X,OA HM OV D X,B X(2)寄存器相对寻址M OV S I,OA HM OV D X,B L OC K S I(3)基址变址寻址M OV B X,B L OC KM OV S I,OA HM OV D X,B X S I 4、现有(D S)=2000H,(B X)=01 00H,(S l)=0002H,(201 00)=1 2H,(201 01)=3 4 H,(201 02)=56 H,(2
11、01 03)=78H,(21 200)=2A H,(20201)=4 C H,(21 202)=B 7H,(21 203)=6 5H,试说明下列各条指令执行完后,A X寄存器的内容。答案:(l)M OV A X,1 200H;1 200H(2)M OV A X,B X;01 00H(3)M OV A X,1 200;4 C 2A H(4)M OV A X,B X;3 4 1 2H(5)M OV A X,1 1 00 B X;4 C 2A H(6)M OV A X,B X S I;7856 I I(7)M OV A X,1 1 00EB X S I;6 5B 7H5、给定(I P)=2B C 0
12、H,(C S)=0200H,位移量 D=51 1 9H,(B X)=1 2001 1,(D S)=21 2A H,(224 A 0)=06 00H,(275B 9)=098A H,试为以下的转移指令找出转移的偏移地址。(1)段内直接寻址(2)使用B X及寄存器间接寻址方式的段内间接寻址(3)使用B X及寄存器相对寻址方式的段内间接寻址答案:(1)7C D 9H (2)06 00H (3)098A H7、在06 24单元内有一条二字节J M P S H OR T OB J指令,如其中位移量为(1)27H,(2)6 B H,(3)0 C 6 H,试问转向地址O B J的值是多少?答案:转向地址 O
13、B J 的值分别为:(1)06 4 B H (2)O6 8H 1 (3)05EA H8、假 定(D S)=2000H,(ES)=21 OOH,(S S)=1 500H,(S I)=00A 0H,(B X)=01 00H,(B P)=001 OH,数据段中变量名V A L的偏移地址值为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1)M OV A X,OA B H(2)M OV A X,B X(3)M OV A X,1 00(4)M OV A X,V A L(5)M OV A X,B X(6)M OV A X.ES:B X(7)M OV A X,B P(8)M OV
14、A X,S I(9)M OV A X,B X+1 0(1 0)M OV A X,V A L B X(1 1)M OV A X,B X S I(1 2)M OV A X,V A L B X S I 答案:(1)M OV A X,OA B H立即数寻址无物理地址(2)M OV A X,B X寄存器寻址同上(3)M OV A X,1 00直接寻址201 00H(4)M OV A X,V A L直接寻址20050I I(5)M OV A X,B X寄存器间接寻址201 00H(6)M OV A X,ES:B X寄存器间接寻址21 1 00H(7)M OV A X,B P 寄存器间接寻址1 501 0I
15、 I(8)M OV A X,S I 同上200A 0H(9)M OV A X,B X+1 0寄存器相对寻址201 1 0H(1 0)M OV A X,V A L B X同上201 50H(1 1)M OV A X,B X S I 基址变址寻址201 A 0H(1 2)M OV A X,V A L B X S I 相对基相变址寻址201 F 0I I1 0、如T A B L E为数据段中003 2单元的符号名,其中存放的内容为1 23 4 H,试问以下两条指令有什么区别?指令执行完后A X寄存器的内容是什么?答案:M OV A X,T A B L E是把符号地址T A B L E里的内容送到A
16、X里,指令执行完后,(A X)=1 23 4 HL EA A X,T A B L E是把符号地址T A B L E的有效地址(这里是偏移量)送到指定寄存器A X里,指令执行完后,(A X)=003 2H1 1、执行下列指令后,A X寄存器中的内容是什么?T A B L E D W 1 0,20,3 0,4 0,50ENT R Y D W 3M OVA D DM OVB X,OF F S ET T A B L EB X,ENT R YA X,B X答案:执行完指令后,(A X)=1 EOOH1 5、求出以下各十六进制数与十六进制数6 2A o之和,并根据结果设置标志位S F,Z F,C F,和0
17、F的值。答案:运算结果(1)74 D 4 H(2)A 5C 1 H(3)4 24 0H(4)0000HS F,Z F,C F,OF各位的值(从左至右依次往下)01000001001101001 7、写出执行以下计算的指令序列,其中X,Y,Z,R和W均为存放1 6位带符号数单元的地址。(1)(2)(3)(4)答案:Z-W+(Z-X)Z-W-(X+6)Z-(W*X)/Z-(W-X)-(R+9)(Y+6),R-余数/5*Y)*2(1).M OV A X,ZS U B A X,XA D D A X,WM OV Z,A X(2).M OVA D DM OVA D I)A D DM OVS U BM OV
18、(3).M OVA X,RA X,9B X,XB X,6A X,B XB X,WB X,A XZ,B XA X,WI M U L XM OV B X,YA D D B X,6I D I V B XM OVM OV(4).M OVS U BC W D在D X中Z,A XR,D XA X,WA X,X;把Z送到A X;z-x;w+(z-x);结果保存在z中;R送至|J A X中;R+9;X送至I J B X中;X+6;(R+9)+(X+6),结果保存在AX中;W送至lj B X中;W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和s;最终结果送到Z中;把W送到A X;W*X 注意:
19、低十六位保存在A X里,高十六位保存在D X里;把Y送到BX里;Y+6;(W*X)/(Y+6)注意:商保存在A X里,余数保存在D X里;把商送到Z中,;把 余 数 送 到R中;把W送到A X中;W-X;把A X中的十六位带符号数扩展成为3 2位,低十六位保存在A X中,高十六位保;M O V B X,5I D I V B XI M U L YM O V B X,2I M U L B XM O V Z,E A X把5送到B X中(W-X)/5 被除数为3 2位,除数为16位商为16位上一步结果再乖以Y,积为3 2位把2送到B X中上一步乘法所得的积再乘以2,各为6 4位把结果中低3 2位放入Z
20、双字单元中M O V Z+4,E D X ;把结果中高3 2位放入Z+4双字单元中18、已知程序段如下:M O V A X,1234HM O V C L,4RO L A X,C LD E C A XM O V C X,4M U L C XI N T 20H试问:(1)每条指令执行完后,A X 寄存器的内容是什么?(2)每条指令执行完后,进位、符号和零标志的值是什么?(3)程序结束时,A X 和 D X 的内容是什么?答案:指令M O V A X,1234HM O V C L,4RO L A X,C LD E C A XM O V C X,4M U L C XI N T 20H本条指令执行完后A
21、 X 的内容 执行完后C F,SF,ZF的值1234H 0 0 01234H0 0 02341H 1 0 02340H 1 0 02340H 1 0 08D 00H 0 1 0程序结束后,(A X)=8D 00H (D X)=O O O O H21、写出对存放在D X 和 A X 中双字长数求补的指令序列。答案:N E G D XN E G A XSB B D X,022、试编写一个程序求出双字长数的绝对值。双字长数在A 和 A+2单元中,结果存放在B 和 B+2单元中。25、试用移位指令把十进制数+53和-49 分别乘以2。它们应该用什么指令?得到的结果是什么?如果要除以2 呢?答案:(1)
22、把 53D 乘以2 的程序:答案:M O V A X,AM O V D X,A+2T E ST D X,8000HJZ RI G H TN E G D XN E G A XSB B D X,0RI G H T:M O V B,A XM O V B+2,D X;把双字是数的低字放到A X 中;把双字晨数的高字放到D X 中;测试字房数的符号;如果是非负数,则直接保存;如果是负数,则求补M O V A X,35HSH L A X ,1;53D=35H(2)把 53D 除以2 的程序:M O V A X,35HSA R A X,1其他的同理28、下列程序段执行完后,B X 寄存器中的内容是什么?M
23、O V C L,3M O V B X,0B 7I IRO L B X,1RO R B X,C L答案:该程序段执行完后,B X 寄存器的内容是:C 02D H30、编写程序段,把字符串ST RI N G 中 的 字 符 用 空 格 符 代 替。ST RI N G D B T h e d a t a i s答案:M O V C X,12HM O V SI,0M O V A X,26HC H E C K:C M P A X,ST RI N G SI I N C SIL O O P N E C H E C KM O V A X,20HM O V ST RI N G SI-1,A XF E B&03,
24、把重复次数放到C X 中。这里用十六暹制表示初始化SI把字符的A S C H 值放入A X依次查找找到了就退出把空格符的A SC I I 值勤放入A X 中用空格符代替32、编写一程序段,比较两个5 字节的字符串O L D S和 N E W S,如果O L D S字符串不同于N E W S字符串则执行N E W L E SS:否则顺序执行程序。答案:程序实现:L E A SI,O L D SL E A D I,N E W SM O V C X,5RE P Z C M P SBJN Z N E W _L E SS42、说明卡列指令的操作(1)P U SH A X(2)P O P E SI(3)P
25、 U SH B X(4)P U SH A D(5)P O P D S(6)P U SH 4答案:(1)P U SH A X(SP)-(SP)-2(SP+1X-(A H)(SP)-(A L)(2)P O P E SI(E SI)-(E SP)+3,(E SP)+2,(E SP)+1,(E SP)(E SP)-(E SP)+4(3)P U SH B X(SP)-(SP)-2(SP+1X-(B X+1)(SP)-(B X)(4)P U SI I A D(E SP)-(E A X)(E SP-4)-(E C X)(E SP-8)-(E D X)(E SP-12X-(E B X)(E SP-16)-(E
26、 S P);这里指的是指令执行前的E SP(E SP-20)-(E B P)(E SP-24)-(E SI)(E SP-28)-(E D I)(E SP)-(E SP)-32(5)P O P D S(D S)-(SP)+1,(SP)(SP)-(SP)+2(6)P U SH 4(SP)-(SP)-2(SP+1X-0(SP)Y 则执行S U M-X+2*Y;否则执行 S U M-X*2+Y。答案:F I N S U M M ACR O X,Y,S U MM O V AX,XM O V BX,Y.I F AX BXADD BX,BXADD AX,BXM O V S U M,AX.E L S EADD
27、 AX,AXADD AX,BXM O V S U M,AX,E N DI FE N DM第八章 输入输出程序设计1、写出分配给下列中断类型号在中断向量表中的物理地址。(1)I N T 12H (2)I N T 8答案:(1)00048 11(2)00020H2、用 C AL L 指令来模拟实现I N T 12H 显示字符T的功能。答案:M O V AH,02M O V D L,TM O V B X,0M O V D S,B XM O V B X,21H *4C AL L FAR P T R B X 3、写出指令将一个字符数据输出到端口 25 H。答案:M O V AL,1211O U T 25
28、 H,AL4、写出指令将一个字数据从端口 1000H 输入。答案:M O V D X,1000HI N AX,D X8、给 定(SP)=1000,(SS)=0300,(FL AGS)0240,以下存储单元的内容为(00020)=0040,(00022)=0100,在段地址为09 00及偏移地址为00A0的单元中有一条中断指令I N T 8指令后,SP,SS,I P,FL AGS的内容是什么?答案:(SP)=O O FA(SS)=0300(I P)=0040(FL AGS)=00409、类 型1 4的中断向量在存储器的哪些单元里?答案:14H*4=5 0H ,:.(005 0H)=偏 移 地 址
29、,(0005 2H)=段地址10、假设中断类型的中断处理程序的首地址为I N T _ R 0U T,试写出主程序中为建立这一中断相量而编制的程序段。答案:P U SH D SM O V AX,SE G I N T _ R O U TM O V D S,AXM O V D X,O FFSE T I N T _ R O U TM O V AL,09M O V AH,25 HI N T 21HP O P D S13、在8.12题中假设所有的中断处理程序中都没有ST I指令,而他们的I R E T指令都可以由于FL AGS出栈而使I F置1,则各设备的中断处理程序的运行次序应是怎样的?答案:D 3-D
30、 2-D 4 -D 5-D 1-D 3-D 5第九章 BIOS和 DOS中断1 I N T 2 1 H的键盘输入功能1和功能8有什么区别?答案:二者不同点是功能1输入字符可回显,功能8输入字符不回显。2、编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用X L AT指令变换)存入内存缓冲区B U FFE R。加密表为:输入数字:0,1,2,3,4,5,6,7,8,9密码数字:7,5,9,1,3,6,8,0,2,4答案:D SE G SE GM E N TSC O D E D B 7,5,9,1,3,6,8,0,2,4B U FFE R D B 10
31、D U P (?)D SE G E N D SC SE G SE GM E N TM AI N P R O C FARASSU M E C S:C SE G,D S:D SE GM O V AX,D SE GM O V D S,AXM O V SI,0M O V C X,10L E A B X,SC O D EI N P U T:M O V AH,01;键盘输入I N T 21HAN D AL,O FH ;ASC I I-数字X L AT ;换码M O V B U FFE R SI ,AL ;存入缓冲区I N C SI ;修改地址指针L O O P I N P U T ;输入下一个数字M O
32、V AX,4C 00H ;返回 D O SI N T 21HM AI N E N D PC SE G E N D SE N D M AI N3、对应黑白显示器屏幕上4 0列最下边一个像素的存储单元地址是什么?答案:(24 行义8 0)+40 列)X 2 =39 20=0F5 0H4、写出把光标置在第12行,第8列的指令。答案:M O V D H,O C H;第12行M O V D L,08 H;第8列M O V B H,0;。页M O V AH,2;置光标I N T 1011;B I 0S调用5、编写指令把12行0列 到2 2行7 9列的屏幕清除。答案:M O V Al l,7 ;屏幕初始化M
33、 O V AL,0;全屏为空格M O V B H,07 H ;正常属性M O V C H,12;左上行M O V C L,0;左上列M O V D H,22;右下行M O V D L,39 ;右下列I N T 10H ;B I O S 调用6、编写指令使其完成下列要求:(1)读当前光标位置;(2)把光标移至屏底一行的开始;(3)在屏幕的左上角以正常属性显示一个字母M。答案:(1)M O V AH,3;读光标位置M O V B H,0;页号I N T 10H;B I O S调用(2)M O V D H,18 H ;第25 行M O V D L,0悌0列M O V B H,0;0页M O VAH,
34、2;置光标位置I N T 10H;B I O S调用(3)M O V AH,2;置光标位置M O V B H,0;0页M O V D X,0;。行0歹IJI N T 10H;B I O S调用M O V AH,9;显示字符及属性M O V AL,M;字符M O V B H,0;0页M O V B L,7;正常属性M O V C X,1;显示次数I N T 10H;f H O S调用7、写一段程序,显示如的的信息;T R Y AGAI N,Y O U H AV E N ST AR FI GH T E R S L E FT.其中N为 C X 寄存器中的9之间的二进制数。答案:M E SSAGE D
35、 B T R Y AGAI N,Y O U H AV E C O U N T D B N D B ST AR FI GH T E R S L E FT.$,AD D C L,30H ;二进制数一ASC HM O V C O U N T,C L ;存入 C O U N TL E A D X,M E SSAGE ;字符串地址M O V AH,09 ;显示字符串I N T 21H ;D O S 调用9、编写程序,让屏幕上显示出信息“W H AT I S T H E D AT E(M M/D D/Y Y)?,并响铃(响铃符为0 7),然后从键盘接收数据,并按要求的格式保存在D A T E 存储区中。答
36、案:M E S S D B W HA T I S T HE D A T E (M M /D D /Y Y),07,$D A T E D B 10,0,10 D UP (9M OV A H,09;显示字符串L E A D X,M E S S ;字符串地址I N T 21HM OV A H,OA H;键盘输入L E A D X,D A T E ;缓冲区地址I N T 21HIk 使用M OD E 命令,设置COM 2端口的通信数据格式为:每字8 位,无校验,1 位终止位和1200BP So答案:M OD E COM 2:12,N,8,1AcknowledgementsMy deepest grat
37、itude goes first and foremost to Professor aaa,mysupervisor,for her constant encouragement and guidance.She has walkedme through all the stages of the writing of this thesis.Without herconsistent and illuminating instruction,this thesis could nothavereached its present form.Second,I would like to ex
38、press my heartfelt gratitude to Professoraaa,who led me into the world of translation.I am also greatly indebtedto the professors and teachers at the Department of English:Professordddd,Professor ssss,who have instructed and helped me a lot in the pasttwo years.Last my thanks would go to my beloved
39、family for their lovingconsiderations and great confidence in me all through these years.I alsoowe my sincere gratitude to my friends and my fellow classmates who gaveme their help and time in listening to me and helping me work out myproblems during the difficult course of the thesis.My deepest gra
40、titude goes first and foremost to Professor aaa,mysupervisor,for her constant encouragement and guidance.She has walkedme through all the stages of the writing of this thesis.Without herconsistent and illuminating instruction,this thesis could nothavereached its present form.Second,I would like to e
41、xpress my heartfelt gratitude to Professoraaa,who led me into the world of translation.I am also greatly indebtedto the professors and teachers at the Department of English:Professordddd,Professor ssss,who have instructed and helped me a lot in the pasttwo years.Last my thanks would go to my beloved family for their lovingconsiderations and great confidence in me all through these years.I alsoowe my sincere gratitude to my friends and my fellow classmates who gaveme their help and time in listening to me and helping me work out myproblems during the difficult course of the thesis.
限制150内