ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:63.67KB ,
资源ID:8349962      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8349962.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言与接口技术叶继华第二版习题答案.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言与接口技术叶继华第二版习题答案.docx

1、汇编语言与接口技术叶继华第二版习题答案习题一解答: 1.3(1)0.0000原=0.0000 0.0000反=0.0000 0.0000补=0.0000 (2)0.1001原=0.1001 0.1001反=0.1001 0.1001补=0.1001 (3)-1001原=11001 -1001反=10110 -1001补=101111.4N反=1.0101 N原=1.1010 N补=1.0110 N=-0.10101.5(1)原码运算:比较可知,正数较大,用正数减负数,结果为正01010011-00110011=01010011原-00110011原=00100000 反码运算:01010011

2、-00110011=01010011反+-00110011反 =001010011 + 111001100=000011111 补码运算:01010011-00110011=01010011补+-00110011补=001010011 + 111001101=000100000 (2)原码运算:比较可知,负数较大,用负数减正数,结果为负0.100100-0.110010=0.110010原-0.100100原=-0.001110 反码运算:0.100100-0.110010=0.100100反+-0.110010反 = 0.100100 + 1.001101=1.110001 补码运算:0.1

3、00100-0.110010=0.100100补+-0.110010补 = 0.100100 + 1.001110=1.1100101.6(1) (11011011)2=(127+126+124+123+121+120)10=(219)10=(001000011001)BCD (2) (456)10=(010001010110)BCD (3) (174)8=(182+781+480)10=(124)10=(000100100100)BCD (4) (2DA)16=(2162+13161+10160)10 =(730)10=(011100110000)BCD1.7(1)9876H看成有符号数时,

4、默认为负数的补码,转换为十进制数是:-26506 9876H=1001100001110110B 为负数的补码,对其求补得到正数的补码,即1001100001110110B补=0110011110001010B=(1214+1213+1210+129+128+127+123+121)10=26506 所以原负数为-26506 (2)9876H看成无符号数时,转换为十进制数是:390309876H=1001100001110110B=(1215+1212+1211+126+125+124+122+121)10=39030 1.8(1)98的压缩BCD码为:10011000B (2)98的非压缩B

5、CD码为:0000100100001000B1.9(1)S1+S2补=S1补+S2补= 00010110+00100001=00110111,无溢出 S1-S2补=S1补+-S2补=00010110+11011111=11110101,无溢出 (2)S1+S2补=S1补+S2补= 00010110+11011111=11110101,无溢出S1-S2补=S1补+-S2补=00010110+00100001=00110111,无溢出(3)S1+S2补=S1补+S2补= 01100100+00011110=10000010,有溢出S1-S2补=S1补+-S2补=01100100+11100010=

6、01000110,无溢出(4)S1+S2补=S1补+S2补= 10011100+11100010=01111110,有溢出S1-S2补=S1补+-S2补=10011100+00011110=10111010,无溢出习题二解答:2.1答:8086有哪些寄存器组?各有什么用途? 通用寄存器AX、BX、CX、DX它既可用作16位寄存器,又可将它拆成高、低8位,分别作为两个独立的8位寄存器使用。AX称累加器。常用于存放算术逻辑运算中的操作数,所有I/O指令都使用累加器与外设接口传送数据;BX称基址寄存器。常用来存放访问内存时的基地址或用作间接寻址时的地址寄存器。CX称计数寄存器。在循环和串操作指令中用

7、作计数器,指令执行后CX寄存器中的内容会自动改变。DX称数据寄存器。在I/O指令中用来存放端口的地址,在乘除指令中用作辅助寄存器。 4个专用寄存器SP堆栈指针寄存器。它在堆栈中存放栈顶偏移指针,;BP基址指针寄存器。一般也用来存放访问内存时的基地址;SI源变址寄存器,DI目的变址寄存器。它们常常用在变址寻址方式中。 4个段寄存器CS代码段寄存器。存放当前程序所在段的段基址;DS数据段寄存器。存放当前程序所用数据段的段基址;SS堆栈段寄存器。存放当前程序所用堆栈段的段基址,ES附加段寄存器。存放当前程序所用辅助数据段的段基址。 指令指针寄存器IP16位的指令指针寄存器IP用于存放下一条执行指令的

8、偏移地址。标志寄存器FR它是16位寄存器,但只使用其中的9位,这9位包括6个状态标志位和3个控制标志位。状态标志记录了前面算术逻辑运算结果的一些特征;控制标志是用户自己通过指令设置的,设置后将对其后的操作产生控制作用。2.2答:8086流水线技术是利用8086内部指令队列,使8086/8088的执行部件和总线接口部件并行工作。其工作过程如下:当8086的指令队列中有两个空字节,或者8088的指令队列中有一个空字节,总线接口部件就自动执行一次指令周期,从内存中取出后续的指令代码放入队列中。当执行部件需要数据时,总线接口部件根据执行部件给出的地址,从指定的内存单元或外设中取出数据供执行部件使用。当

9、运算结束时,总线接口部件将运算结果送入指定的内存单元或外设。当指令队列空时,执行部件等待,直到有指令为止。若总线接口部件正在取指令,执行部件此时正好发出访问总线的请求,则必须等总线接口部件取指令完毕后,该请求才能得到响应。一般情况下,程序按顺序执行,但当遇到跳转指令时,总线接口部件就使指令队列复位,从新地址取出指令,并立即传给执行部件去执行。所以,8086流水线技术减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度,也降低了对存储器存取速度的要求。2.3答:为了尽可能使8086/8088CPU适应各种使用场合,8086/8088CPU通常有两种工作模式:最大工作模式和

10、最小工作模式。最小工作模式,就是在系统中只有8086或者8088一个微处理器。在这种系统中,所有的控制信号直接由8086或8088产生,因此,系统中的总线控制逻辑电路被减到最少。最大工作模式,是相对最小工作模式而言。在此工作模式系统中,一般包含两个或两个以上微处理器,但是主处理器只有一个,其他的处理器均为协处理器,协助主处理器工作。2.4答:逻辑地址是由段基址和偏移地址两部分构成,通常由编程人员在指令中使用。8086系统中任何一个存储单元对应20位的物理地址,都是由逻辑地址转换得来的。8086存储器中的物理地址是由内部总线接口部件BIU地址加法器产生。由地址加法器把16位段寄存器的内容转换为2

11、0位物理地址,即段基址左移4位后,再加上有效偏移量地址。物理地址=CS16+IP=40000H+2200H=42200H2.5答:8086CPU为了能够对存储器进行字节和字的访问,在技术上将1M字节的存储器空间分成两个512K字节(219)的存储体。一个存储体中包含偶数地址,该存储体被称为偶存储体;另一个存储体中包含奇数地址,该存储体被称为奇存储体,两个存储体之间采用交叉编址方式,然后通过A0 和BHE组合就可以确定对哪一组存储体进行访问,是对字节还是对字进行访问。2.6答:在存储器中,对要存放的字,其低位字节可以从奇数地址开始存放,也可以从偶数地址中开始存放;如果从奇数地址开始存放称为非规则

12、存放,按非规则存放的字称为字不对准存放。从偶数地址中开始存放称为规则存放,按规则存放的字称为字对准存放。使用字对准存放要在一个总线周期完成,用字不对准存放则需要两个总线周期才能完成。所以为了加快程序运行速度,编程时应尽可能使用字对准存放。习题三解答:3.6答:(1)MOV CX, BX(2)MOV AX, 1234H(3)MOV AX, WORD PTR 20H(4)MOV BYTE PTR BX, 20H3.7答:(1)EA=3000H(2)EA=1200H(3)EA=3300H(4)EA=4200H(5)EA=4500H3.8答:(1)立即数寻址(2)直接寻址(3)寄存器间接寻址(4)基址

13、变址寻址(5)相对基址变址寻址(6)寄存器寻址3.9答:(1)段内间接寻址 (2)段内间接寻址 (3)段间间接寻址3.10答:(1)直接寻址 PA=10200H(2)寄存间接寻址 PA=10010H(3)跨段寄存器间接寻址 PA=15010H(4)跨段寄存器间接寻址 PA=20010H(5)寄存器间接寻址 PA=200A0H(6)寄存器相对址寻址 PA=10110H(7)基址变址寻址 PA=10110H(8)相对基址变址寻址 PA=10210H(9)寄存器间接寻址 PA=10100H3.12答:(1)AX=0100H(2)AX=1020H(3)AX=1020H(4)AX=5030H(5)AX=

14、2010H(6)AX=2010H(7)AX=1020H3.13答:(1)SI=0320H (2)BP=1320H (3)DI=0310H(4)X=0FFF0H3.11答:(1)MOV AL, 1234H (2)MOV CS, AX (3)MOV 1000, 1000H (4)MOV BYTE PTR BX,1000H (5)PUSH AL (6)IN AX, BX (7)SHL AX, 5 (8)XCHG DS, AX(9)XCHG BX, SI(10)DEC SI(11)NEG 1234H(12)MUL 05H(13)DIV AX, BX(14)LEA AX, 0100H(15)AND BX

15、, SI类型不匹配代码段寄存器不能赋值类型不匹配,目的操作数未指明数据类型类型不匹配类型不匹配源操作数为0255移位大于1时,应放入CL中不能为段寄存器两个操作数不能同时为MEM未指明操作数的数据类型操作数不能是立即数操作数应为REG或MEM单操作数,且操作数应为REG或MEM源操作数为MEM两个操作数不能同时为MEM3.14答:指令AXCFOFZFSFMOV AX,00000H不影响不影响不影响不影响DEC AX0FFFFH不影响001NOT AX0000H不影响不影响(0)不影响(0)不影响(1)AND AX,0FFFFH 0000H0010CMP AX,0FFFFH0000H1000SU

16、B AX,1200H0EE00H1001MOV CX,50EE00H不影响(1)不影响(0)不影响(0)不影响(1)SAR AX,10F700H1001SAR AX,CL0FFB8H0不确定01ADD AX,0FFFFH0FFB7H1001NEG AX (0-(AX))0049H10003.15答:(1) 测试AL中1、3、5位是否均为“1” (2)对32位数(高位在DX,低位在AX)求补码3.16答:(1)XOR AL ,2AH(2)MOV BL ,AL NOT BLTEST BL, 2AH JE L1 MOV AL ,0. L1: MOV AL , 1(3)MOV CL, 4ROL AL,

17、 CLROL BL, CLXCHG AL, BL(4)PUSHFPOP AX(5)PUSHFPOP AXAND AX, 0FEFFH ;设置TF=D8=0PUSH AXPOPF(6)MOV CL, 4MOV BX, DXSHL BX, CLSHR DX, CLSHR AX, CLOR AH, BL(7)STDMOV AX, DSMOV ES, AXMOV SI, 0163HMOV DI, 01B3HMOV CX, 100REP MOVSB(8)MOV AL,BYTE PTR AIMUL BYTE PTR B ;(AX)A*BMOV BYTE PTR C,ALMOV BYTE PTR C+1 ,

18、AH习题四解答:4.1答:指令语句: 执行语句,产生机器代码。伪指令语句:不可执行语句,完成数据定义、内存分配等功能。4.2答:1). 标号的属性(标号是一条指令语句的符号地址。标号在汇编源程序中,只有在需要转向一条指令语句时,才为该指令语句设置标号,以便在转移类指令(含子程序调用指令)中直接引用这个标号。标号可作为转移类指令的操作数,即转移地址。)(1)段属性:标号所在段的段基址(通常在CS段) 。(2)偏移地址属性:标号所在地址与段基址的偏移量值。(3)类型属性:指段内操作(NEAR类型)或段间操作(FAR类型)。2). 变量的属性(发生变化的量称变量。变量经常在操作数字段中出现,在代码段

19、之外的段中定义。变量是一个存放数据的存储单元的名字(符号地址)。也可以定义一个数据区或存储区,但变量仅表示该数据区或存储区的第一个单元(首地址)。) (1)段属性:变量所在的段的段基址,通常在DS、ES中。(2)偏移地址属性:从段基址到定义变量位置之间的字节数,是16位的无符号数。(3)类型属性:变量所具有的字节数。如:BYTE(单字节长度)、WORD(双字节长度)、DWORD(4字节长度)、DQ(8字节长度)、DT(10字节长度) ,表示该变量所代表的存储单元所能存放的数据的长度。4.3答:(1)X变量的定义。(2)X符号常量的定义。4.4答:A01H02H03H04HB31H32H33H3

20、4HC01H00H02H00H03H00H04H00HE34H12H00H00H4.5答:(1)STR1的偏移地址为:100H(2)NUM为 10 (因为$=10AH,所以$- STR1=10AH-100H=0AH=10) (3)STR2+3的存储单元内容为 4FH (即第四个字符O所对应的ASCII码)4.6答:分别为:3CH ,1EH,0FH4.9答:(1)(AX)=1234H (2)(AX)=5678H (3)(AX)=5678H4.10答:DATA SEGMENTARRAY EQU THIS WORDARRAY DB 100 DUP (?)DATA ENDS4.11答:(1)ARRAY

21、 DB 12H, 34H, 56H, 0ABH(2)DARRAY DW 1234H, 5678H, 0ABCDH(3)BCD DW 1234 (4)STR DB STRING(5)DATA1 SEGMENT DB 12H, 34H,A,B,CDW 1234H, 5678H, 0ABCDHDB 10 DUP (?) DATA1 ENDS4.12答:(1)POP STAK(2)LES SI,DVAR(3)MOV AX,TYPE VAR (4)MOV AX,OFFSET VSTR/LEA AX,VSTR4.13答:(1)VAR DW 5050 / MOV WORD PTR VAR,50504.14答

22、:(1)LEA BX ,DAT1/MOV BX,OFFSET DAT1(2)MOV CL ,BYTE PTRDAT2+2(3)MOV BYTE PTRBUF1+9,11H(4)LEN1=13, LEN2=7(5)MOV CX, DAT2-DAT1lEA SI , DAT1LEA DI , BUF2MOV AX , DSMOV ES , AXCLDREP MOVSB1DAT123123-34HDAT212H341212H00H-BUF1-:-BUF2:4.15答:LEA SI ,STR MOV DH ,SI MOV DL ,SI+6或者:MOV DH, STRMOV DL, STR+6习题五解答

23、:5.1 简述汇编语言程序设计的基本步骤答:(1) 分析问题,抽象出描述问题的数学模型(2) 确定解决问题的算法或解题思想(3) 绘制流程图和结构图(4) 分配存储空间和工作单元(5) 根据流程图编制程序(6) 程序静态检查(7) 上机调试5.2 程序的基本结构分为哪几种?答:3种结构:顺序结构、分支结构、循环结构5.3 简述分支程序结构的特点?答:运行方向是向前的,在某一种确定的条件下,只能执行多个分支中的一个分支。5.4 简述循环程序结构的特点、循环控制的方法。答:(1)循环程序结构是重复执行某一程序段,直到满足某个条件或达到重复的次数为止。(2)循环结构分为:直到型循环(do_until

24、)和当型循环(do_while)(循环次数可以为0)。循环控制的方法1计数控制法 计数控制法适用于循环次数已知的循环程序设计,每执行一次循环,计数器变化一次(加1或是减1),然后和循环计数结束条件进行比较,以决定是否继续循环。通常用LOOP指令实现。2条件控制法 条件控制法适用于循环次数不能预先确定的循环程序设计,程序运行时,通过测试特定的条件来实现对循环的控制,通常用比较指令和条件转移指令配合来实现。5.5 简述主程序与子程序的参数传递方法。答:(1)约定寄存器法 主程序把子程序所需要的入口参数预先存放在指定寄存器中,进入子程序后,子程序直接对这些寄存器内容进行处理,并把处理结果存放在指定的

25、寄存器中,作为返回到主程序的参数。适合参数少的情况。(2)约定存储单元法 利用预先定义的内存空间存放入口参数或出口参数,主程序将入口参数存放在预定的内存空间中,进入子程序后,子程序到预定的内存空间中取出参数进行处理,并把处理结果存放在预定的内存空间中,作为返回到主程序的参数。适合参数多的情况。(3)堆栈法 主程序在调用子程序之前先将入口参数压入堆栈,进入子程序之后,使用出栈指令弹出参数进行处理,子程序处理完毕后将结果压入堆栈,返回主程序后,在主程序中使用出栈指令弹出子程序的处理结果。注意避免与现场保护使用堆栈出现混乱情况。5.6 什么是递归子程序?设计的关键是什么?答:(1)递归子程序:一个子

26、程序直接或间接地调用自己,这样的子程序称为递归子程序。(2)设计的关键:递归调用一定要有递归结束的条件,在满足递归结束条件时,必须有一条转移指令实现嵌套的退出,保证能按反向次序退出并返回主程序。5.7答:(1)将一字节数据按位取反,然后与其本身进行逻辑乘,即清0作用; (2)AL的内容为:89H,NUM的内容为:00H。5.8答:(1)求DAT的平方,并将结果放到DAT+1中。(2)DAT+1的内容为51H5.9答:(1)将DAT第0、2位清0,1、3、7位置1;(2)程序执行后DAT的内容为0DAH。5.10答:(AL)=0D4H5.11答:(1)双字相加,低位字相加结果放置DAT3中,高位

27、字相加结果放置DAT4中,;(2)两个压缩的BCD码:4649H与2758H相减,结果放置DX中。5.12答:(1)对BUF的内容清0,遇到BUF的内容为0FF则停止清0。(2)求BUF中的前10个字节数之和(不考虑进位/溢出),结果放到AL中。(3)求DAT中的前10个字节数之和(不考虑进位/溢出),结果放入BUF。(4)从BLOCK开始的100个字节查找第一个和KEY相等的元素,找到就将结果放到ADDR中,否则DI置0。5.13答:判断DAT如果为0,则将AL放到RES中;如果为正,将DAT的值加1,如果为负,将DAT的值减1,放到RES中。5.14 答:(1)求DAT存储单元中前10个字

28、节数据之和(不考虑进位/溢出),结果放到预留的空间RES中。(2)将DAT存储单元中前10个字节数据扩展成字,然后求和(不考虑进位/溢出),结果放到预留的空间RES中。(3)求1到100的和结果放到AX中。(4)(DX)=11+22+1010。(5)统计AX中1的个数,存放在BL中。5.15 答:功能:将DAT1存储单元中的字符串反向传送到DAT2存储单元中,所以,DAT2的前5个单元的内容是 98765。5.16 答:(1) MOV AX, WORD PTR DAT1+2(2) SUB AX, WORD PTR DAT1MOV WORD PTR DAT3, AX(3) MOV AX, WOR

29、D PTR DAT2ADD AX, WORD PTR DAT2+2MOV WORD PTR DAT3+2, AX5.17答:DATA SEGMENT DAT DW 100, 200, 150, 6 DUP(?);X DW 100;Y DW 200;Z DW 150DATA ENDSSTACK SEGMENT STACKDW 200 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS, AXMOV AX,WORD PTR DATMOV BX,WORD PTR DAT+2ADD AX,BXMOV BX,WORD PTR DAT+3SUB AX,BXMOV WORD PTR DAT+6,AXMOV AH,4CHINT 21HCODE ENDSEND

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1