接口与汇编程序设计作业答案(DOC)知识讲解.docx

上传人:h**** 文档编号:26644174 上传时间:2022-07-18 格式:DOCX 页数:21 大小:19.21KB
返回 下载 相关 举报
接口与汇编程序设计作业答案(DOC)知识讲解.docx_第1页
第1页 / 共21页
接口与汇编程序设计作业答案(DOC)知识讲解.docx_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《接口与汇编程序设计作业答案(DOC)知识讲解.docx》由会员分享,可在线阅读,更多相关《接口与汇编程序设计作业答案(DOC)知识讲解.docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、接口与汇编程序设计作业答案(DOC)知识讲解 习题1(教材P56) 18086/8088微处理器地址总线有多少位?寻址范围是多少? 答:20位 A0-A19。寻址范围00000H-FFFFFH 28086/8088微处理器分哪两部分?各部分主要由什么组成? 答:执行单元EU和总线接口单元BIU。 EU包括:ALU、寄存器组、暂存器、标志寄存器、EU控制单元。 BIU包括:指令队列缓冲器、段寄存器及指令指针、总线地址加法器、总线控制逻辑。 48086/8088微处理器中有几个通用寄存器?几个变址寄存器?有几个指针寄存器?几个段寄存器? 答:8个通用寄存器AX、BX、CX、DX、SP、BP、SI、

2、DI。2个变址寄存器SI、DI。2个指针寄存器SP、BP。DS、ES、SS、CS段地址寄存器。 58086/8088微处理器中有哪些标志位?它们的含义和作用如何? 答:零标志位ZF、进位标志CF、溢出标志位OF、辅助进位标志位AF、奇偶标志位PF、符号标志位SF、方向标志位DF、中断允许标志位IF、跟踪标志TF。 6试求出下列运算后的各个状态标志,说明进位标志和溢出标志的区别? 1278H+3469H 答:0001 0010 0111 1000 +0011 0100 0110 1001 0100 0110 1110 0001 ZF=0;SF=0;CF=0;OF=0;AF=1;PF=1。 54E

3、3H-27A0H 答:0101 0100 1110 0011 +1101 1000 0110 0000(-27A0的补码) 10010 1101 0100 0011 ZF=0;SF=0;CF=1;OF=0;AF=0;PF=0。 3881H+3597H 答:0011 1000 1000 0001 +0011 0101 1001 0111 0110 1110 0001 1000 ZF=0;SF=0;CF=0;OF=0;AF=0;PF=1。 01E3H-01E3H 答:0000 0001 1110 0011 +1111 1110 0001 1101(-01E3H的补码) 10000 0000 000

4、0 0000 ZF=1;SF=0;CF=1;OF=0;AF=1;PF=1。 进位表示最高位产生进位。 溢出表示超出数的表示范围。OF=C n C n-1 8什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处? 答:逻辑地址:产生实际地址的两个地址分量:首地址和偏移地址。物理地址:内存单元地址。用户在编写程序时只使用逻辑地址。程序装到内存中使用物理地址。物理地址可以通过逻辑地址求得。 9设现行数据段位于存储器的B0000H到BFFFFH存储单元,DS段寄存器内容为多少?答:DS=B000H 118086/8088微处理器工作在最小模式和最大模式时的主要特点是什么?有何区别? 答:最小

5、模式只有一个CPU不需要总线控制器。最大模式有多个微处理器,必须要总线控制器来对总线控制权进行分配。引脚MN/MX=1工作在最小模式。MN/MX=0工作在最大模式。 13.80486地址总线宽度为多少?数据总线宽度为多少? 答:80486地址总线宽度为32位(分成4个块,每个块为8位字长,块有A1,A0选择)有数据总线宽度为32位。 14现有6个字节的数据分别为11H,22H,33H,44H,55H,66H,已知它们在存储器中的物理地址为400A5H400AAH,若当前的(DS)=4002H,请说明它们的偏移地址值。如果从存储器中读出这些数据,至少需要访问几次存储器,各读出哪些数据? 解:物理

6、地址=(DS)16+偏移地址, 偏移地址=物理地址-(DS)16=400A5H400AAH-40020H=85H8AH 至少需要访问三次存储器,每次读出一个字,即2211H,4433H,6655H。 这六个数在存储器中的存放位置如图所示。 4002:0085 4002:0086 4002:0087 4002:0088 4002:0089 4002:008A 习题2(教材P105) 1已知DS=2000H,BX=0100H,SI=0002H,存储单元20220H20223H依次存放12 24 56 78H,21200H21203H依次存放2A 4C B7 65H,说明下列每条指令执行后AX寄存器

7、的内容。 (1) MOV AX, 1200H 解:AX=1200H (3) MOV AX, 1200H 解:物理地址=D S16+1200H=20000H+1200H=21200H,所以AX=4C2AH (5) MOV AX, BX+1100H 解:物理地址=D S16+BX+1100H=20000H+0100H+1100H=21200H ,所以AX=4C2AH (7) MOV AX, BXSI+1100H 解:物理地址=D S16+BX+SI+1100H=20000H+0100H+0002H+1100H=21202H ,所以AX=65B7H (2) MOV AX, BX 解:AX=0100H

8、 (4) MOV AX, BX 解:物理地址=D S16+BX=20000H+0100H=20220H,所以AX=2412H (6) MOV AX,BXSI 解:物理地址=D S16+BX+SI=20000H+0100H+0002H=20222H,所以AX=7856H 2指出下列指令错误 (1) MOV CX, DL 答:数据类型不匹配,CX是16位,DL是8位。 (2) MOV IP, AX 答:指令指针不能直接修改。 (3) MOV ES, 1234H 答:段地址寄存器不能直接置数。 (4) MOV ES, DS 答:段地址DS不能做源操作数。 (5) MOV AL, 300 答:300大

9、于255,AL是8位的,最多只能存255 (6) MOV SP, AX 答:SP不能做间接寻址寄存器。 (7) MOV AX , BX+DI 答:基址变址寻址必须打。 (8) MOV 20H, AH 答:立即数不能做目的地址单元。 3已知数字09对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存放在于以TABEL为首地址(设为200H)的连续区域中。对如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。 LEA BX,TABLE ;取表的首地址送BX,执行后(BX)=200H MOV AL,8 ;立即数8送AL,执行后,(AL)=8

10、 XLAT ;查表,将表首地址+8((BX)+(AL))所对应单元内容送AL, ;执行后,(AL)=12H(8所对应的格雷码) 4什么是堆栈,它的工作原则是什么,它的基本操作有哪两个,对应哪两种指令? 答:堆栈是在内存中开的一个特殊的数据区,堆顶有堆栈指针SP 与SS 共同决定。 原则是:先进后出, 两个操作:入栈、出栈,对应指令:PUSH(入栈)、POP(出栈)。 5已知SS=FFA0H ,SP=00B0H ,画图说明执行下列指令序列时,堆栈区和SP 的内容如何变化? MOV AX , 8075H PUSH AX MOV AX , 0F79H PUSH AX POP BX POP BX 解:

11、 8请分别用一条汇编语言指令完成如下功能: (1)把BX 寄存器和DX 寄存器的内容相加,结果存入DX 寄存器。 FFA0:00AE SP FFA0:00AF FFA0:00B0 FFA0:0000 执行完 MOV AX , 8075H PUSH AX 指令后 SP=00AEH FFA0:00AC SP FFA0:00AD FFA0:00AE FFA0:00AF FFA0:00B0 FFA0:0000 再执行完 MOV AX , OF79H PUSH AX 指令后 SP=00ACH FFA0:00AE SP FFA0:00AF FFA0:00B0 FFA0:0000 再执行完 POP BX 指

12、令后 SP=00AFH FFA0:00AE FFA0:00AF FFA0:00B0 SP FFA0:0000 再执行完 POP BX 指令后 SP=00B0H 解:ADD DX, BX (2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送AL中。 解:ADD AL, BX+SI 或ADD AL, BXSI (3)用寄存器BX和02BH的寄存器相对寻址方式,把存储器的一个字和CX寄存器的内容相加,并把结果送回存储器中。 解:ADD BX+02BH ,CX 或ADD 02BH BX ,CX (4)把数0A0H与AL寄存器内容相加,并把结果送AL中。 解:A

13、DD AL, 0A0H 10指出下列指令错误 (1)XCHG SI, 30H 答:立即数不能作为单元地址来保存数据,所以交换指令中的两个操作数必须是地址操作数。 (2)POP CS 答:CS不能作为寻址寄存器使用 (3)SUB SI, DI 答:算术运算指令中的两个操作数不能同时都在内存中 (4)PUSH AH 答:PUSH指令中的操作数必须是16位操作数,AH是8位 (5)ADC AX, DS 答:DS不能做源操作数, (6)OUT DX, AH 答:只能使用AL(当端口数据位是8位)或AX(端口数据位是16位)与端口交换数据(7)IN AL 3FCH 答:端口地址大于255时,必须有DX寄

14、存器间接寻址。 20假设DS=2000H,BX=1256H,SI=528FH,位移量TABLE=20A1H,232F7H=3280H,264E5H=2450H,试问执行下列段内间接转移指令后,转移的目的地址是什么? (1) JMP BX (2) JMP TABLEBX (3) JMP BXSI 解:(1)JMP BX,目标地址的偏移量在BX中,所以转移的目的地址是CS:1256H(也可以直接写成有效地址IP=1256H)。 (2) JMP TABLEBX,目标地址的偏移量在存储器单元中,该存储器单元有效地址为(BX)+ TABLE中,所对应的物理地址=DS16+(BX)+TABLE=20000

15、H+1256H+20A1H=232F7H,该单元存放的内容为3280H,所以JMP TABLEBX 转移的目的地址是CS:3280H(也可以直接写成有效地址IP=3280H) (3)JMP BXSI 目标地址的偏移量在存储器单元中,该存储器单元有效地址为(BX)+ (SI)中,所对应的物理地址=DS16+(BX)+(SI)=20000H+1256H+528FH=264E5H,该单元存放的内容为4500H,所以JMP TABLEBX 转移的目的地址是CS:4500H(可以直接写成有效地址IP=4500H)。 23假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转 移

16、指令实现以下判断: (1)若DXDI,转到ABOVE执行; (2)若AXSI,转到GREATER执行; (3)若CX=0,转到ZERO执行; (4)若AX-SI产生溢出,转到OVERFLOW执行; (5)若SIAX,转到LESS_EQ执行; (6)若DIDX,转到BELOW_EQ执行。 解:(1)CMP DX,DI JA ABOVE (2)CMP AX,SI JG GREATER (3)CMP CX,0 JE ZERO (4)CMP AX,SI JO OVERFLOW (5) CMP SI,AX JLE LESS_EQ (6) CMP DI,DX JBE BELOW_EQ 选做题 14题(P1

17、07).已知数据段500H600H中存放了一字符串,说明下列程序段执行后的结果。 MOV SI, 600H MOV DI, 601H MOV AX, DS MOV ES, AX MOV CX, 256 STD REP MOVSB 24题(P108).有一个首地址为ARRAY的20个字的数组,说明下列程序的功能。 MOV CX, 20 MOV AX, 0 MOV SI, AX SUM_LOOP: ADD AX, ARRAYSI ADD SI, 2 LOOP SUM_LOOP MOVE TOTAL, AX 25题(P109).按照下列要求,编写相应的程序段: 起始地址为STRING的主存单元中存放

18、有一个字符串(长度大于6),把该字符串的第一和第六字符(字节变量)传送给DX, 解: MOV SI, 0 MOV DL , STRINGSI MOV DH , STRINGSI+5 从主存BUFFER开始的4个字节中保存了4个非压缩的BCD码,现按低(高)地址对低(高)位的原则将它们合并到DX中 解: MOV SI, 0 MOV AL , BUFFERSI AND AL, 0FH MOV AH , BUFFERSI+1 AND AH, 0FH MOV CL, 4 SHL AH, CL ADD AL,AH MOV DL,AL MOV AL , BUFFERSI+2 AND AL, 0FH MOV

19、 AH , BUFFERSI+3 AND AH, 0FH MOV CL, 4 SHL AH, CL ADD AL,AH MOV DH,AL 编写一个程序段,在DX 高4位全为0时,使AX=0;否则使AX=-1 解: AND DX, 0F000H JZ ZERO MOV AX 0FFFFH;-1补码=FFFFH JMP JEND ZERO: MOV AX,0 JEND: HALT 26题(P109).按下述要求,分别给出3种方法,每种方法只用一条指令。 使CF=0 解: 方法一:CLC 方法二:ADD AL, 0 方法三:SUB AL, 0 使AX=0 解: 方法一:MOV AX, 0000H

20、方法二:AND AX, 0000H 方法三:SUB AX, AX 同时使AX=0和CF=0 解: 方法一:SUB AX, AX 方法二:AND AX, 0000H 方法三:XOR AX, AX 习题3(教材P182) 1伪指令语句与硬指令语句的本质区别是什么?伪指令语句有什么主要作用? 答:区别:伪指令语句是汇编程序可以识别和解释语句(CPU不能直接执行),硬指令语句是CPU可以执行的语句。 伪指令语句主要作用是为汇编程序提供解释说明,它仅仅是在汇编过程中告诉汇编程序如果进行汇编。 2什么是标识符?汇编程序中标识符怎样组成? 答:是用户自己定义的符号名。在汇编程序中标识符有两种:标号标识符,用

21、在指令语句中,后面跟冒号,表示程序入口的逻辑地址。符号(或名字)标识符,用在伪指令语句中,后面不跟冒号,通常是定义一个变量,或说明变量类型。标识符一般不超31个字符,数字及常规符号($、?等)不能打头,也不能使用保留字。标识不区分大小写。 4汇编语句有哪两种,每个语句有哪4部分组成? 答:指令语句(又称执行语句)和伪指令语句(又称说明性语句)。指令语句4部分包括,标号:、硬指令助记符、操作数、;注释。伪指令语句4部分包括,符号名、伪指令助记符、参数、;注释。 5汇编程序开发有哪4个步骤?分别利用什么程序完成,产生什么输出文件? 答:编辑。使用文本编辑器。产生汇编源程序文件: 文件名.ASM。源

22、文件是文本文件。 汇编。使用汇编程序,如MASM或ML,排除程序中的语法错误。产生目标文件:文件名.OBJ。目标文件是二进制文件,是不能执行的文件。 连接。使用LINK。产生可执行文件:文件名.EXE. 调试。使用DEBUG。本身不产生文件,是对连接产生的可执行进行调试,排除程序中的算法错误,保证可执行文件的正确性。 7假设MYWORD是一个字变量,MYBYTE1和MYBYTE2是两个字节变量,指出下列语句中的错误原因。 (1) MOV BYTE PTRBX, 1000 答:数据类型不匹配,目的地址单元是字节单元,1000大于255。无法存放。 (2) MOV BX, OFFSETSI 答:O

23、FFSET后只能跟标识符。 (3) CMP MYBYTE1, MYBYTE2 答:CMP的两个操作数不能同时在存储器中。 (4) MOV AL, MYBYTE1+MYBYTE2 答:运算符只能对常数进行操作,不能对变量进行操作。 (5) SUB AL, MYWORD 答:数据类型不匹配,AL是8位的,MYWORD是16位变量。 (6) JNZ MYWORD 答:MYWORD是变量,其指的单元中存放的是操作数,不能用做跳转入口。 8OPRL是个常数,请问下列语句中两个AND操作有什么不同? AND AL, OPRL AND 0FEH 答:第一个AND是指令语句,在程序运行时才执行,第二个AND是

24、逻辑运算符,是在汇编时就对两个常量完成的关系运算。 选做题 22题(P184).编写程序完成两个已知双精度(4B)A和B相加,并将结果存入双精度变量单元SUM中(不考虑溢出) A DD ? B DD ? SUM DD? MOV AX, WORD PTR A ADD AX, WORD PTR B MOV WORD PTR SUM AX MOV AX, WORD PTR A+2 ADDC AX, WORD PTR B+2 MOV WORD PTR SUM+2 AX 22题(P184).编写程序完成12H,45H,0F3H 6AF,20H,0FEH,90H,0C8H,57H和34H 共10字节数据之

25、和,并将结果存入字节变量SUM中(不考虑溢出)。 DAT1 DB 12H,45H,0F3H6AF,20H,0FEH, 90H, 0C8H, 57H,34H MOV CX, 10 MOV AL, 0 LEA SI ,DAT1 SUM_LOOP: ADD AL, SI INC SI LOOP SUM_LOOP MOVE SUM, AL 25题(P185).编写一个程序段,将AX寄存器中的16位数连续4位分成一组,共 4组,然后把这4组数分别放在AL、BL、CL和DL中。 MOV BX, AX AND AL, 0FH MOV CL, 4 SHR BL, CL AND BL, 0FH MOV DL,

26、AH SHR DL, CL AND DL, 0FH MOV CL, AH AND CL, 0FH 27题(P185).已知用于LED数码显示的代码表位为:LEDTABLE DB 0C0H,0FCH,0A4H, 0B0H,99H,92H,82H,0F8H,80H,90H,88H, 83H,0CCH,0C1H,86H,8EH 它依次表示09,AF这16个数码的显示代码。现编写一个程序实现将LEDNUM 中的一个数字(09,AF)转换成对应的LED显示码。 LEA BX LEDTABLE MOV AL, LEDNUM XLAT 26题(P185).编写一个程序,把从键盘输入的一个小写字母转换成大写字

27、母显示出来 MOV AH, 08H; 不带显示的键盘输入(字符以ASCII码存AL中) INT 21H AND AL, 1101 1111 MOV DL, AL;将要显示字符的ASCII码DL MOV AH, 02H ;调显示 INT 21H 32题(P185).不用串操作指令,求主存0040H:0开始的一个64KB物理段中共有多少空格?编写程序实现。 MOV AX,0040H MOV DS, AX MOV SI, 0 MOV CX,0 MOV DX,0 L0:MOV AL,SI INC SI CMP AL,20H ; 20H空格的ASCII码 JNZ L1 INC DX L1:LOOP L0 HLT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁