教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

微机原理与接口技术复习题1-5(答案)(2)

来源:网络收集 时间:2026-08-23
导读: REP MOVSB ;循环传送10次 答:(1)功能:将起始偏移地址为0406H的16个内存单元清零。 (2)功能:将FIRST数据区的10个数据拷贝到SECOND数据区中去 11. 阅读下列程序段,并说明程序的功能 LEA BX, ARRAY ; LEA DI,

REP MOVSB ;循环传送10次 答:(1)功能:将起始偏移地址为0406H的16个内存单元清零。

(2)功能:将FIRST数据区的10个数据拷贝到SECOND数据区中去

11. 阅读下列程序段,并说明程序的功能 LEA BX, ARRAY ; LEA DI, RESULT MOV CL, 4 AGAIN: MOV AL, [BX] TEST AL, 80H JZ NEXT XOR AL, 0FFH INC AL

NEXT: MOV [DI], AL INC BX INC DI DEC CL JNZ AGAIN

答:把ARRAY数据区里的四个字节取出来,判断是不是负数,如果是负数就把它变成正数,如果是正数就不处理,最后把这些数再存放到RESULT数据区里去。 注意:这里负数是按照补码来表示

12. 阅读下列程序,写出程序执行后的结果。

DATA SEGMENT AT 3000H

BLOCK DB 00H,12H,35H,64H,41H

DB 7FH,80H,0ABH,0EFH,5FH

VAL DB 00H DATA ENDS

COSEG SEGMENT

ASSUME CS:COSEG,DS:DATA START: MOV AX, DATA

MOV DS, AX

MOV BX, OFFSET BLOCK MOV AL, [BX] INC BX MOV CX,9 AGIN: CMP AL, [BX]

JG NEXT MOV AL, [BX] NEXT: INC BX

DEC CX JNZ AGIN MOV VAL, AL MOV AH, 4CH INT 21H

COSEG ENDS END START

结果: DS=_3000H____, (3000AH)=___00H___, BX=__09H______ 标志位:CF=__0______, [VAL]=__EFH______

13. 程序段如下 MOV CX, 0 LOP : AND AX, AX JZ STOP SAL AX, 1 JNC NOD INC CX NOD: JMP LOP STOP: HLT

问该程序段完成什么功能?

答:该程序完成对存放在AX中的二进制数的1位进行统计的功能

复习题4

14. 设a,b,c 均为无符号字节数据,编程计算y= (a + b) ×C 。

解答:

(1)分析: 由题设条件知a , b , c 均为无符号字节数据,那么a + b 则在无符号字数据范围内,求出(a + b) 之后,其结果与c 相乘得到最终结果。 (a + b) ×C 的结果在双字范围内。

(2)程序结构: 从分析可知这个题目应由顺序程序结构方法来编程。

(3)数据定义: 解决参加运算的数据和结果应如何存放的问题。参加运算的这三个数可以存放在一个变量开始的单元,也可以分别存放。 假设三个数据a , b , c 存放在数据段偏移量num开始的单元,结果保存在数据段偏移量为y 的单元中, y 单元为预留的结果单元。

(4)处理方法: 程序处理时清零ax , bx ,设置数据指针,依次取出a , b 求其和,再将此和乘以c,最后将存放在DX和AX中的结果依次送到y单元中。 (5)编写程序: 根据处理方法和数据存放空间的分配编写源程序。

汇编语言源程序清单如下:

DSEG SEGMENT

a DB 200

b DB 238

c DB 196 ; 三个数据a,b,c y DW 2 DUP(?) DSEG ENDS ;

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG START:

; --------请在这里加入语句,完成数据段初始化--------------- MOV AX, DSEG MOV DS, AX

; ------------使AX,BX 清零--------------- XOR AX, AX MOV BX, AX

;--------------完成(a + b) ×C --------- MOV AL, a MOV BL, b ADD AX, BX MOV BL, c MUL BX

; -----------将运算结果存到y单元中--------------------- MOV DI, OFFSET y MOV [DI], AX MOV [DI+2], DX

; ----------------------------------------------------------- CSEG ENDS END START

15. 编程计算无符号字节数之和。 无符号字节数的长度及其所求的和都存放在存储器的数据段中。无符号字节数串从NUM 单元开始存放,长度存放在COUNT 单元,和存放在SUM 单元。假设和数小于256 。

解答:

分析: 由题目可知,要求将多个无符号字节数加起来,主要任务是做\加法\,关键指令是“加法指令”,由于一条加法指令每次只能完成两个数据的加法运算,因此,要多次使用加法指令,首先把第1、第2个数相加,其和再与第3个数相加。。,依次完成n 个数的加法。 程序结构: 从以上分析可知该程序应采用循环结构。

数据定义: 要存储的数据有字节长度、字节数及其结果。字节数长度(count)定义为字单元,待加的无符号数(num))定义为字节单元,连续存放COUNT 个无符号字节数,结果(sum)定义为字节单元。

处理方法: 做好循环初始化工作,在循环次数控制下完成任务。 ?循环的初始化部分完成:

(1) 和数寄存器AX 清零: 0→AX

(2) 设置这串数的长度CX: (COUNT)→CX

(3) 设置这串数的数据首地址BX: OFFSET NUM ? BX

?循环体中应完成:

(4) 把一个数据与和数相加,结果存放在和数寄存器AL 中: AL+ [BX] ?AL (5) 修改数据指针: BX+ 1? BX

?循环结束判断:

(6) 加法结束了吗? (CX-1? CX , CX=0?)

若没有,则循环转向(4); 若已经完成,则转结束处理(7): (7) 结果→SUM 单元; (8) 程序结束。 程序流程图如图5.19 所示。

程序清单如下: DSEG SEGMENT

COUNT EQU 6 ;字节数长度单元

NUM DB 03H, 07H, 11H, 02H, 30H, 19H ;待加字节数(6 个字节)

SUM DB ? ;预留1个字节单元存放结果 DSEG ENDS

CSEG SEGMENT

ASSUME CS: CSEG, DS: DSEG START:MOV AX, DSEG

MOV DS, AX ;数据段初始化

;-----------------请从这里补充代码,完成整个程序-------------------------

XOR AL, AL

MOV BX, OFFSET NUM MOV CX, COUNT …… 此处隐藏:1096字,全部文档内容请下载后查看。喜欢就下载吧 ……

微机原理与接口技术复习题1-5(答案)(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/614826.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)