IBM-PC汇编语言程序设计答案第2版.doc
《IBM-PC汇编语言程序设计答案第2版.doc》由会员分享,可在线阅读,更多相关《IBM-PC汇编语言程序设计答案第2版.doc(214页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流IBM-PC汇编语言程序设计答案第2版.精品文档.附录:IBMPC汇编语言程序设计习题参考答案第 一 章. 习 题1.1 用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369(2) 10000(3) 4095(4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2 将下列二进制数转换为十六进制数和十进制数:(1
2、) 10 1101(2) 1000 0000(3) 1111 1111 1111 1111(4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3 将下列十六进制数转换为二进制数和十进制数:(1) FA(2) 5B(3) FFFE(4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234
3、H=1 0010 0011 0100B=46601.4 完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7(2) 1234+AF(3) ABCD-FE(4) 7AB6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB6FH=35325H=2178931.5 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85
4、-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1
5、010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=01.6 下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8(2) FF答:(1) D8H表示的带符号数为 -40,D8H表示的无符号数为216;(2) FFH表示的带符号数为 -1, FFH表示的无符号数为255。1
6、.7 下列各数均为用十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字符的ASCII码时,它们所表示的十进制数及字符是什么?(1) 4F(2) 2B(3) 73(4) 59答:(1) 4FH表示的十进制数为 79,4FH表示的字符为O;(2) 2BH表示的十进制数为 43,2BH表示的字符为 +;(3) 73H表示的十进制数为115,73H表示的字符为s;(4) 59H表示的十进制数为89,59H表示的字符为Y。1.8 请写出下列字符串的ASCII码值。For example,This is a number 3692.答:46H 6FH 72H 20H 65H 78H 6
7、1H 6DH 70H 6CH 65H 2CH 0AH 0DH54H 68H 69H 73H 20H 69H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H 72H 20H 33H 36H 39H 32H 2EH 0AH 0DH第 二 章. 习 题E5H000B0H1EH000B1H3CH000B3H2AH000B4H存储器2.2题的信息存放情况000B2H2.1 在80x86微机的输入/输出指令中,I/O端口号通常是由DX寄存器提供的,但有时也可以在指令中直接指定00FFH的端口号。试问可直接由指令指定的I/O端口数。答:可直接由指令指定的I/O端口数为256个。2.2
8、 有两个16位字1EE5H和2A3CH分别存放在80x86微机的存储器的000B0H和000B3H单元中,请用图表示出它们在存储器里的存放情况。答:存储器里的存放情况如右上图所示。2.3 在IBM PC机的存储器中存放信息如右下图所示。试读出30022H和30024H字节单元的内容,以及30021H和30022H字单元的内容。34H30021HABH30022HCDH30023HEFH30024H存储器2.3题的信息存放情况12H30020H答:30022H字节单元的内容为ABH;30024H字节单元的内容为EFH。30021H字单元的内容为AB34H;30022H字单元的内容为CDABH。2
9、.4 在实模式下,段地址和偏移地址为3017:000A的存储单元的物理地址是什么?如果段地址和偏移地址是3015:002A和3010:007A呢?答:3017:000A、3015:002A和3010:007A的存储单元的物理地址都是3017AH。2.5 如果在一个程序开始执行以前(CS)=0A7F0H,(如16进制数的最高位为字母,则应在其前加一个0) (IP)=2B40H,试问该程序的第一个字的物理地址是多少?答:该程序的第一个字的物理地址是0AAA40H。10F4010E4020F4020E4021F0031F0031FF041FF0附加段数据段堆栈段代码段2.6 题的存储器分段示意图2.
10、6 在实模式下,存储器中每一段最多可有10000H个字节。如果用调试程序DEBUG的r命令在终端上显示出当前各寄存器的内容如下,请画出此时存储器分段的示意图,以及条件标志OF、SF、ZF、CF的值。Cdebug-rAX=0000 BX=0000 CX=0079 DX=0000 SP=FFEE BP=0000SI=0000 DI=0000 DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL NZ NA PO NC答:此时存储器分段的示意图如右图所示。OF、SF、ZF、CF的值都为0。2.7 下列操作可使用那些寄存器?(1) 加法和减法数据寄存器
11、等(2) 循环计数CX(3) 乘法和除法AX、DX,乘数和除数用其他寄存器或存储器(4) 保存段地址段寄存器(5) 表示运算结果为0ZF=1(6) 将要执行的指令地址CS:IP(7) 将要从堆栈取出数据的地址SS:SP答:答案见题目的右边。2.8 那些寄存器可以用来指示存储器地址?答:BX、BP、SI、DI、堆栈操作时的SP、对应的段地址、386及其后继机型的Exx。2.9 请将下列左边的项和右边的解释联系起来(把所选字母放在括号中):(1) CPU(M)A.保存当前栈顶地址的寄存器。(2) 存储器(C)B.指示下一条要执行的指令的地址。(3) 堆栈(D)C.存储程序、数据等信息的记忆装置,微
12、机有RAM和ROM两种。(4) IP(B)D.以后进先出方式工作的存储空间。(5) SP(A)E.把汇编语言程序翻译成机器语言程序的系统程序。(6) 状态标志(L)F.唯一代表存储空间中每个字节单元的地址。(7) 控制标志(K)G.能被计算机直接识别的语言。(8) 段寄存器(J)H.用指令的助记符、符号地址、标号等符号书写程序的语言。(9) 物理地址(F)I.把若干个模块连接起来成为可执行文件的系统程序。(10) 汇编语言(H)J.保存各逻辑段的起始地址的寄存器,8086/8088机有四个:CS、DS、SS、ES。(11) 机器语言(G)K.控制操作的标志,如DF位。(12) 汇编程序(E)L
13、.记录指令操作结果的标志,共6位:OF、SF、ZF、AF、PF、CF。(13) 连接程序(I)M.分析、控制并执行指令的部件,由算术逻辑部件ALU和寄存器等组成。(14) 指令(O)N.由汇编程序在汇编过程中执行的指令。(15) 伪指令(N)O.告诉CPU要执行的操作(一般还要指出操作数地址),在程序运行时执行。答:答案见题目的括号中。第 三 章. 习 题3.1 给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1) 立即寻址(2) 直接寻址(3) 使用BX的寄存器寻址(4) 使用BX的简接寻址(5) 使用BX的寄存器相对寻址(
14、6) 基址变址寻址(7) 相对基址变址寻址答:(1) 操作数在指令中,即立即数;(2) EA=D=7237H;(3) 无EA,操作数为(BX)=637DH;(4) EA=(BX)=637DH;(5) EA=(BX)+D=0D5B4H;(6) EA=(BX)+(SI)=8E18H;(7) EA=(BX)+(SI)+D=1004FH;超过了段的边界,最高进位位丢失,因此EA=004FH。3.2 试根据以下要求写出相应的汇编语言指令(1) 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中。(2) 用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL
15、寄存器中。(3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。(4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。(5) 把数0B5H与(AL)相加,并把结果送回AL中。答:(1) ADD DX, BX(2) ADD AL, BXSI(3) ADD BX+0B2H, CX(4) ADD WORD PTR 0524H, 2A59H(5) ADD AL, 0B5H3.3 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。要求使用以下几种寻址方式:(1) 寄存器间接寻址(2)
16、 寄存器相对寻址(3) 基址变址寻址答:(1) MOV BX, OFFSET BLOCKADD BX, (61)*2MOV DX, BX(2) MOV BX, OFFSET BLOCK改为:MOV BX, (6-1)*2MOV DX, BX+(61)*2也可MOV DX, BLOCKBX(3) MOV BX, OFFSET BLOCKMOV SI, (61)*2MOV DX, BXSIFFH00H80H3.6题的作图表示10H1B00:2000H1B00:2001H1B00:2002H1B00:2003H8000:FF10H8000:FF11H?(AL)?(AH)3.4 现有(DS)=2000
17、H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。(1) MOV AX, 1200H(2) MOV AX, BX(3) MOV AX, 1200H(4) MOV AX, BX(5) MOV AX, 1100BX(6) MOV AX, BXSI(7) MOV AX, 1100BXSI答:(1) (AX)=1200H(2) (AX)=0100H(3)
18、(AX)=4C2AH(4) (AX)=3412H(5) (AX)=4C2AH(6) (AX)=7856H(7) (AX)=65B7H3.5 给定(IP)=2BC0H,(CS)=0200H,位移量D=5119H,(BX)=1200H,(DS)=212AH,(224A0H)=0600H,(275B9H)=098AH,试为以下的转移指令找出转移的偏移地址。(1) 段内直接寻址(2) 使用BX及寄存器间接寻址方式的段内间接寻址(3) 使用BX及寄存器相对寻址方式的段内间接寻址答:(1) JMP NEAR PTR 5119H;(IP)=5119H+(IP)+03H)=7CDCH,物理地址PA=09CDC
19、H(IP)+03H是JMP NEAR PTR 5119H指令的下一条指令的首地址。(2) JMP WORD PTR BX;(IP)=(DS)*10H+(BX)=0600H,PA=02600H(3) JMP DBX;(IP)=(DS)*10H+(BX)+D)=098AH,PA=0298AH3.6 设当前数据段寄存器的内容为1B00H,在数据段的偏移地址2000H单元内,含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列,并画图表示出来。MOVBX, 2000HLESBX, BXMOVAX, ES:BX答:MOV BX, 2000
20、H;图示如上所示。MOV AX, 2000H+2MOV ES, AXMOV AX, ES:BX3.7 在0624H单元内有一条二字节JMP SHORT OBJ指令,如其中位移量为(1) 27H,(2) 6BH,(3) 0C6H,试问转向地址OBJ的值是多少?答:(1) OBJ=0624H+02H+27H=064DH(2) OBJ=0624H+02H+6BH=0691H(3) OBJ=0624H+02H+0C6H=05ECH;C6H对应的负数为-3AH(向上转移,负位移量)3.8 假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(
21、BP)=0010H,数据段中变量名VAL的偏移地址为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1) MOV AX, 0ABH(2) MOV AX, BX(3) MOV AX, 100H(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, BXSI(12) MOV AX, VALBXSI答:(1) 立即方式;操作数在本条指令中(2) 寄存器寻址方式;操作数为 (BX)=0100H(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IBM PC 汇编语言 程序设计 答案
限制150内