2022年微机原理与接口技术习题答案 5.pdf
《2022年微机原理与接口技术习题答案 5.pdf》由会员分享,可在线阅读,更多相关《2022年微机原理与接口技术习题答案 5.pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 4 章 汇编语言程序设计1.已知在 BUF 的起始处保存有N 个字符的ASCII 码,编写汇编语言程序实现,将这组字符串传送到缓冲区BUFR 中,并且使字符串的顺序与原来的顺序相反。解: BUF DB BONJOUR_BELLE BUFR DB 100 DUP(?) MOV CX, N LEA SI, BUF LEA DI, BUFR ADD DI,CX DEC DI L1: MOV AL,SI MOV DI,AL INC SI DEC DI LOOP L1 2.利用移位、传送和相加指令实现AX 的内容扩大10 倍。解:将扩大后的结果放在DX :AX 中,注意到10 AX 8AX 2 AX
2、 。XOR DX,DX SHL AX, 1 RCL DX, 1 MOV BX,AX MOV CX,DX SHL AX, 1 RCL DX, 1 SHL AX, 1 RCL DX, 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - ADD AX, BX ADC DX, CX 3.在缓冲区 VAR 中连续存放着3个 16位的无符号数, 编写程序实现将其按递增关系排列;如果 VAR 中保存的为有符号数,则再编写程序实现将其按递减关
3、系排列。解: VAR DW 1236 ,-432,3900 XOR SI,SI MOV AX,V ARSI CMP AX, V ARSI+2 JAE L1 XCHG AX, V ARSI+2 L1: CMP AX, V ARSI+4 JAE L2 XCHG AX, V ARSI+4 L2: MOV VARSI, AX MOV AX,V ARSI+2 CMP AX, V ARSI+4 JAE L3 XCHG AX, V ARSI+4 L3: MOV VARSI+2, AX 4.编写程序段实现将AL 和 BL 中的每一位依次交叉,得到的16 位字保存在DX 中,例如( AL ) 01100101B
4、, (BL ) 11011010B,则得到的( DX )10110110 10011001B。解:利用移位指令完成。XOR DX,DX MOV CX,8 L1: SHR AL,1 RCR DX,1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - SHR BL,1 RCR DX,1 LOOP L1 5.在变量 VAR1 和 VAR2 中分别保存有两个字节型的正整数,编写完整的汇编语言程序实现:( 1)当两数中有一个奇数时,将奇数
5、存入VAR1,偶数存入VAR2;(2)当两数均为奇数时,两个变量的内容不变;(3)当两数均为偶数时,两数缩小一倍后存入原处。解:当VAR1 为奇数时,不论VAR2 的奇偶性,这两个单元的内容均不变;只有当VAR1为偶数时,如果VAR2 为奇数,则VAR1 与 VAR2 内容交换;如果VAR2 为偶数,则两数缩小一倍后存入原处。DATA SEGMENT VAR1 DB 28 VAR2 DB 36 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA START: MOV AX, DA TA MOV DS,AX MOV ES, AX MOV
6、 AL,V AR1 MOV BL,VAR2 TEST AL,1 JZ EVEN1 JMP OVER EVEN1: TEST BL,1 JZ EVEN2 MOV VAR1,BL 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - MOV VAR2,AL JMP OVER EVEN2: SHR AL,1 MOV VAR1,AL SHR BL,1 MOV VAR2,BL OVER: MOV AH,4CH MOV AL,0 INT 21H
7、 CODE ENDS END START 6.已知在字变量VAR1 、VAR2 和 VAR3 中保存有 3 个相同的代码,但有一个错码,编写程序段找出这个错码,并将它送到AX ,其地址送SI;如果 3 个代码都相同,则在AX中置 1 标志。解:在数据段中定义:VAR1 DW 5A34H VAR2 DW 5A35H VAR3 DW 3A34H 在代码段中编写程序段:MOV AX,-1 MOV BX,V AR1 CMP BX,V AR2 JZ L2 CMP BX,V AR3 JZ L1 MOV AX,BX LEA SI,VAR1 JMP OVER 名师资料总结 - - -精品资料欢迎下载 - -
8、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - L1: MOV AX,V AR2 LEA SI,VAR2 JMP OVER L2: CMP BX,V AR3 JZ OVER MOV AX,V AR3 LEA SI,VAR3 OVER: 7.分析下列程序段的功能:MOV CL , 04 SHL DX ,CL MOV BL , AH SHL AX ,CL SHR BL ,CL OR DL , BL 解:程序段完成DX:AX组成的 32 位无符号数左移4位,低位补零(也即除以16)
9、 。8.下列程序段执行后,求BX 寄存器的内容:MOV CL , 3 MOV BX ,0B7H ROL BX ,1 ROR BX ,CL 解:实际上完成BX 内容循环右移2位,因此, BX 寄存器的内容为C02DH 。9.下列程序段执行后,求BX 寄存器的内容:MOV CL , 5 MOV BX ,7D5CH SHR BX ,CL 解:完成 BX 内容逻辑右移5 位,因此, BX 寄存器的内容为03EAH 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - -
10、 - - - - - - - 10.将 BUFFERS 中 N 个字按相反顺序传递到BUFFERT 中。解:LEA SI,BUFFERS LEA DI,BUFFERT MOV CX,N ADD DI,N ADD DI,N SUB DI,2 L1: MOV AX,SI MOV DI,AX ADD SI,2 SUB DI,2 LOOP L1 11.数组 ARRAY中存放有一组字型数据,前两个字节存放数据长度(5 的倍数)。为给这个数组中的数据进行加密保护,每 5 个数据取出一个数据进行加密处理:奇数位进行取反,偶数位不变, 例如对数据0110 1100 1011 0001B 加密后变成1100 0
11、110 0001 1011B,编写加密程序encrpytion 和解密程序unencrpytion 。解:约定从第一个数据开始,每 5 个数据为一组, 每组中的第一个数据采取加密/解密处理。由于加密算法采用的是取反操作,解密算法也采用取反操作,因此解密和解密算法是同一个程序。ENCRPYTION PROC NEAR LEA SI,ARRAY XOR DX,DX MOV AX,SI MOV BX,5 DIV BX MOV CX, AX ADD SI, 2 L1: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
12、 - - - - - 第 6 页,共 22 页 - - - - - - - - - MOV AX, SI XOR AX,0AAAAH MOV SI, AX ADD SI,10 LOOP L1 RET ENCRPYTION ENDP 13.设 BUF 中存放有 N 个无符号数(或有符号数),编程实现求它们的最小值(存入AX )和最大值(存入DX ) 。解: BUF 存放有 N 个无符号数的程序如下:MOV CX,N-1 LEA SI,BUF MOV AX,SI MOV DX,AX ADD SI,2 L1: CMP AX,SI JBE NOCHG1 XCHG AX,SI NOCHG1: CMP D
13、X,SI JAE NOCHG2 XCHG DX,SI NOCHG2: ADD SI,2 LOOP L1 如果 BUF 中存放的是有符号数,则只需要将程序中的两行内容修改:JBE NOCHG1 改成: JLE NOCHG1 JAE NOCHG2 改成: JGE NOCHG2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 14.设 BUFFER 中存放有N 个无符号 (第 1个字节存放缓冲区的长度),编程实现将其中的0 元素抹去
14、,并更新其长度。解:设BUFFER 中存放的是字节型数据。采用双指针方法:SI 为读指针, DI 为写指针,从低地址开始,内存中读出一个字节,如果不为0,则写入内存;如果为0,则不进行写操作。LEA SI, BUFFER XOR CX,CX MOV CL, SI INC SI MOV DI, SI XOR BH,BH XOR AL,AL L1: CMP SI,AL JZ L2 MOV BL,SI MOV DI,BL INC DI INC BH L2: INC SI LOOP L1 MOV BUFFER,BH 16.编写一个子程序实现统计AL 中 1 的个数,然后检测出字节型缓冲区BUF 中 0
15、 和 1 个数相等的元素个数。解:统计AL 中 1 的个数,只需将AL 右移,移出的一位内容进行累加,子程序为:COUNTBYTE PROC NEAR PUSH AX PUSH CX 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - - - - - - - MOV CX,8 XOR BL,BL COU1: SHR AL,1 ADC BL,0 LOOP COU1 POP CX POP AX RET COUNTBYTE ENDP 在此基础上,可以检测出字节
16、型缓冲区BUF 中 0 和 1 个数相等的元素个数,即一个字节中有 4 个 1。设 BUF 中有 N 个字节型数据,结果保持在BH 中。MOV CX,N LEA SI, BUF XOR BH,BH L1: MOV AL,SI CALL COUNTBYTE CMP BL,4 JNZ L2 INC BH L2: INC SI LOOP L1 19.在缓冲区 BUFFER 中,第 1 个字节存放数组的长度(256) ,从第 2 个字节开始存放字符的 ASCII 码,编写子程序完成在最高位给字符加上偶校验。解: STACK SEGMENT STACK STACK DW 100H DUP (?)TOP
17、LABEL BYTE STACK ENDS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - DATA SEGMENT BUFFER DB 3 ;首字节为字符串长度DB ABC ;字符串DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,STACK MOV SS,AX LEA SP,TOP MOV AX,DA TA MOV DS
18、,AX MOV ES,AX LEA DI,BUFFER XOR CX,CX MOV CL,DI INC DI CALL SETEVEN MOV AH,4CH ;返回 DOS MOV AL,0 INT 21H SETEVEN PROC NEAR ;加偶校验子程序PUSH AX PUSH BX PUSH CX PUSH DI SETEVEN1: MOV AL,DI CALL COUNTBYTE 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - -
19、 - - - AND BL,01H JZ SETEVEN2 OR AL,80H MOV DI,AL SETEVEN2: INC DI LOOP SETEVEN1 POP DI POP CX POP BX POP AX RET SETEVEN ENDP COUNTBYTE PROC NEAR PUSH AX PUSH CX MOV CX,8 XOR BL,BL COU1: SHR AL,1 ADC BL,0 LOOP COU1 POP CX POP AX RET COUNTBYTE ENDP CODE ENDS END START 20. 编写程序完成求多位数(N 个字)的绝对值。名师资料总结
20、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 21. 已知斐波那契数列的定义为:) 3(, 1, 12121iFFFFFiii,编写求该数列前 n 项的子程序。解:设奖斐波那契数列存放在字变量RESULT 中。在数据段中定义RESULT DW 100H DUP (?)在代码段中编写子程序FIBONACCI PROC NEAR XOR DI,DI MOV RESULTDI,1 ;前两个数为1 MOV RESULTDI+2,1 ADD DI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年微机原理与接口技术习题答案 2022 微机 原理 接口 技术 习题 答案
限制150内