微计算机原理(第2版)第四章课后习题答案 潘名莲 马争 丁庆生 编著讲解
更新时间:2023-04-29 03:30:01 阅读量: 实用文档 文档下载
- 计算机原理第四章课后答案推荐度:
- 相关推荐
第四章 汇编语言程序设计
4-1 汇编语言程序设计的几个步骤是: 解:编写汇编语言程序的过程基本上与编写高级语言程序的过程是相同的。 (1)从实际问题抽象出数学模型;
(2)确定解决该数学模型的方法,选择最佳算法;
(3)画出流程图,根据算法把解决问题的思路和方法用图形表示出来; (4)分配内存工作单元和寄存器; (5)根据流程图编制程序; (6)上机调试,检测 和排错。
4-2 计算下列表达式的值(A1=50H ,B1=20,G1=2)。 (1)A1*100+B1 (2)A1 MOD G1+B1 (3)(A1+2)*B1-2 (4)B1/3 MOD 5 (2)(5)(A1+3 )*(B1 MOD G1) (6)A1 GT G1 (7)B1 AND 7 (8)B1 SHL 2+G1 SHR 1 解:(1)5020 (2)20 (3)1038 (4)1 (5)0 (6)0FFFFH (7)04H (8)51H
4-3 已知数据段定义如下,设该段从03000H 开始。 DSEG SEGMENT
ARRAY1 DB 2 DUP (0, 1,?) ARRAY2 DW 100 DUP (?) FHZ EQU 20H
ARRAY3 DB 10 DUP (0, 1, 4 DUP(2), 5) DSEG ENDS
试用分析运算符OFFSET 、SEG 、LENGTH 、TYPE 、SIZE 求出ARRY1、ARRY2、ARRY3的段、偏移量和类型,以及它们的 LENGTH 和SIZE 解:
4-4 (略)
4-5 以下语句汇编后,变量CON1,CON2和CON3的内容分别是多少? N1=10 N2=5 N3=3 CON1 DB (N1 AND N2 OR N3) GE 0FH CON2 DW (N2 AND N1 XOR N3) LE 0FH CON3 DB (N1 MOD N3) LT (N2 SHR1) 解:如图所示
4-6 设有一个已定义的数据段如下:
DA TA SEGMENT
V AR1 DB ?, ?
V AR2 DB ?, ?
ADR DW V AR1,V AR2
DA TA ENDS
若要使ADR+2的字单元中存放内容为“0022H”,上述空白处应填入什么语句?
解:ORG 0020H
4-7 下述程序段执行后,寄存器CX,SI的内容是多少?
ARRY DW 20 DUP (5)
…
XOR AX, AX
MOV CX, LENGTH ARRY
MOV SI, SIZE ARRY-TYPE
解:(CX)=14H (SI)=26H
4-8 试定义一个结构,它应包括一个学生的下列信息:姓名、学号、及3门课程的成绩。然后给出3条机构预置语句,将3个学生的情况送入3个结构变量中。
解:
STUD STRUC ;定义一个结构,结构名为STUD NAME1 DB ‘’;姓名字段
NUM DB ? ;学号字段
SCOR DB 3 DUP (?) ;三门课程成绩字段
STUD ENDS
DA TA SEGMENT ;在数据段中通过三个结构变量引用,并赋值STUD1 STUD <’ZHU MEING’, 3, 88, 79, 91> ;结构变量名STUD1
STUD2 STUD <’ZHANG XING’, 15, 78, 83, 77> ;结构变量名STUD2
STUD3 STUD <’W ANG Y AN’, 12, 91, 92, 93> ;结构变量名STUD3
DA TA ENDS
4-9 试定义一条宏指令,它可以实现任一数据块的传送(假设无地址重叠),其源地址、目的地址和块长度作为参数处理。
解:
根据要求,子程序的入口参数有:源数据区和目的数据区的首址以及数据块的大小(包含的字节数)。假设参数传递采用固定内存单元传递方式。
SADR——源数据区首地址;
DADR——目的数据区首地址;
SLENG——数据块长度。
程序如下:
SMOVE MACRO SADR, DADR, SLENG
ASSUME CS; CODE
LDS SI, SADR
LES DI, DADR
MOV CX, SLENG
CLD
CMP SI, DI
JA MOVE
STD
ADD SI, CX
DEC SI
ADD DI, CX
DEC DI
MOVE: MOVSB
LOOP MOVE
RET
ENDM
4-10 设V AR1和V AR2为字变量,LAB为标号,试判断下列指令的正误,并改正:(1)ADD V AR1 V A2 (2)JNZ V AR1 (3)SUB AL, V AR1
(4)JMP NEAR LAB (5)JMP LAB[SI] (6)MOV AL, VAR2
解:
(1)错,ADD的两个操作数不能同时为存储单元。
改:MOV AX, V AR1
ADD AX, V AR2
(2)错,JCC后面应该是标号,不应该是变量
改:JNZ LAB
(3)错,两个操作数不匹配
改:SUB AX, V AR1
(4)错,缺少PTR运算符
改:JMP NEAR PTR LAB
(5) 错,LAB与[SI]不能相加
改:JMP FAR PTR LAB 或者JMP WORD PTR [SI]
(6) 错,操作数类型不匹配
改:MOV AX, V AR2
4-11 已知数据定义如下,问L1和L298等于多少?
B1 DB 1,2,3,‘123’
B2 DB 0
L1 EQU $—B1
L2 EQU B2—B1
解:L1=$—B1=7—0=7,L2=B2—B1=6—0=6
4-12 对于下列数据定义,指出以下指令的错误。
A1 DB ?
A2 DB 10
K1 EQU 1024
(1) MOV K1,AX
(2) MOV A1,AX
(3) MOV BX, A1
MOV [BX], 1000
(4) CMP A1,A2
(5) K1 EQU 2048
解:
(1)K1为名称,表示一立即数,不能做为目的操作数。
(2)A1为字节型,类型不匹配
(3)类型不匹配
(4)源和目的操作数不能同为存储器操作数
(5)对已经被EQU定义的K1,在本程序段不能二次定义
4-13 试编程计算Z=5X+3Y+10.已知X,Y均放在数据段,其值由编程者自定。结果Z仍放在数据段。
解:
DA TA SEGMENT
X DB 10
Y DB 5
Z DW ?
DA TA ENDS
STACK SEGMENT PARA STACK ‘STACK’
DW 20H DUP (0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS: STACK
MAIN PROC FAR
PUSH DS
MOV AX, 0
PUSH AX
START: MOV AX, DA TA
MOV DS, AX
MOV AL, X
MOV BL, Y
MUL BL ;X*5
MOV DX, AX ;转存至DX
MOV AL, Y
MOV BL, 3
MUL BL ;Y*3,积在AX中
ADD AL, 0AH
ADD AX, DX
MOV Z, AX ;结果仍放数据段
RET
MAIN ENDP
CODE ENDS
END START
4-14 (略)
4-15 用查表法将存放于数据段中一个有序的十六进制数串(范围:0~FH)翻译成ASSII码表仍放于数据段中.
解:
DA TA SEGMENT
TAB DB 30H, 31H, 32H, …,36H, 37H
DB 38H, 39H, 41H, …,45H, 46H
HEX DB 6
ASC DB ?
DA TA ENDS
STACK1 SEGMENT PARA ‘ATACK’
DW 20H DUP (0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DA TA, SS: STACK1
BEGIN: MOV AX, DATA
MOV DS, AX
MOV BX, OFFSET TAB ;设置ASCII码表的基地址在BX中
XOR AX, AX
MOV AL, HEX ;要查找的一位十六进制数在AL中
ADD BX, AX ;基址+偏移置即可计算出该十六进制数ASCII码存放地址MOV AL, [BX] ;该地址单元的内容即为要查找的ASCII码
MOV ASC, AL ;存放ASCII码至ASC字节单元
MOV AH, 4CH
INT 21H
CODE ENDS
END BEGIN
4-16 试编写一程序,把X和Y中的大者存入BIG单元。若X=Y,则把其中之一存入BIG 单元。
解:
DA TA SEGMENT
X DW 1028
Y DW 1446
BIG DW ?
DA TA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DA TA
START: MOV AX, DA TA
MOV DS, AX
MOV AX, X ;取字数据X至AX
MOV BX, Y ;取字数据Y至BX
CMP AX, BX ;比较(AX)和(BX)
JGE STORE ;若(AX)≧(BX),则转STORE处执行
XCHG AX, BX ;若(AX)<(BX),则(AX )(BX)
STORE: MOV BIG, AX ;存结果至BIG字单元
MOV AH, 4CH
INT 21H
CODE ENDS
END START
4-17 试编制一程序,比较STRING1和STRING2所含字符是否完全相同,若相同显示“MA TCH”,反之,则显示“NO MA TCH”。试编写该程序。
解:
DA TA SEGMENT
STR1 DB ‘COMPUT’
STR2 DB ‘CONPUT’
MYES DB ‘MATCH’, 0DH, 0AH, ‘$’
DA TA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DA TA
MOV DS, AX
MOV CX, 6
MOV SI, OFFSET STR1 ;设置字符串STR1的地址指针SI
MOV DI, OFFSET STR2 ;设置字符串STR2 的地址指针DI
CLD
REPE CMPSB ;字符串一致时,重复比较,在两字串中找不相同字符
JNE NO_SAME ;若有不相同字符,则转至NO_SAME处执行,否则顺序执行SAME: MOV DX, OFFSET MYES
MOV AH, 09H ;显示字符串“MA TCH”
INT 21H
JMP END0
NO_SAME: MOV DX,OFFSET MNO
MOV AH, 09H ;显示字符串“NO MATCH”
INT 21H
END0:MOV AH, 4CH
INT 21H
CODE ENDS
END START
4-18 设数据段中有3个变量单元A、B和C中存放有3个数,若3个数都不为0,则求出
此3个数之和存入SUM单元;若有一个数为0,则将其他两个单元也清零。试编写此程序。解:
DA TA SEGMENT
A D
B 5
B DB 4
C DB 3
SUM DW ?
DA TA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
BEGIN: MOV AX, DATA
MOV DS, AX
CMP A, 0
JE OK1
CMP B, 0
JE OK1
CMP C, 0
JNE OK2
OK1:MOV A,0
MOV B, 0
MOV C, 0
JMP OK3
OK2:MOV AH, 0
MOV AL, A
ADD AL, B
ADD AL, C
MOV SUM, AX
OK3:MOV AH, 4CH
INT 21H
CODE ENDS
END BEGIN
4-19 假设已编制好5个乐曲程序,它们的入口地址(含段首址和偏移地址)存放在数据段中的跳跃表MUSICTAB中。试编写一个管理程序,其功能是:根据键盘输入的乐曲编号00~04转到所点乐曲的入口,执行此乐曲程序。
解:
DA TA SEGMENT
MUTAB DW MUSICO, MUSCI1,…,MUSIC4
DA TA ENDS
STACK SEGMENT PARA STACK ‘STACK’
DW 20H DUP (?)
STACK ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
LEA BX, MUTAB
NEXT: MOV AH, 1
INT 21H
CMP AL, 30H
JB NEXT
CMP AL, 34H
JA NEXT
SUB AL, 30H
MOV AH, 0
SHL AX, 1
ADD BX, AX
JMP WORD PTR[BX]
︰
﹕
MUSIC0:…
MUSIC1:…
﹕
﹕
MUSIC4:…
RET
MAIN ENDP
CODE ENDS
END START
4-20 试编写一个能循环显示十条新闻标题的控制程序,每条新闻的标题为NEW1、NEW2、…、NEW10,及其入口地址转换表NEWTAB放在数据区中。
解:
DA TA SEGMENT
NEW1 DB ‘NEWS0’, 0DH, 0AH, ‘$’
NEW2 DB ‘NEWS1’, 0DH, 0AH, ‘$’
NEW3 DB ‘NEWS2’, 0DH, 0AH, ‘$’
﹕
﹕
NEW10 DB ‘NEWS9’, 0DH, 0AH, ‘$’
NEWTAB DW NEW1,NEW2,NEW3,…, NEW10
DA TA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DA TA
MAIN PROC FAR
正在阅读:
微计算机原理(第2版)第四章课后习题答案 潘名莲 马争 丁庆生 编著讲解04-29
物料申购流程及管理规定08-13
红胡子的诅咒读后感10篇12-12
2017年咨询工程师继续教育环境评价试题及答案94分03-18
行政执法证件考试考试题库(多选题有答案)07-02
2016年宁德市人教版初中中考语文古诗词理解性背诵默写06-28
新编英语教程5 8-12翻译答案04-22
期末复习记叙文写作指导05-15
信访挂职锻炼总结09-27
函数零点和极值教案11-22
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 第四章
- 庆生
- 课后
- 编著
- 习题
- 讲解
- 原理
- 答案
- 计算机
- 潘名莲
- 马争
- 2016北京电影学院导演系电影学考博初试科目及参考书辅导(附导师简介)
- 2020律师事务所实习日记8篇
- 七下《带上她的眼睛》--导学案
- 中班上学期健康教案评价《有营养的饭菜》
- 初中历史《繁荣与开放的社会》单元教学设计以及思维导图20
- 安全检查维修管理制度
- 2021年最新整理公务员考试行测练习:数字推理84 (29)
- CFOP高级玩法的详细解说
- 企划部主任员工绩效考核表
- 环评报告表公示稿-上海某文化发展有限公司建设项目
- 2013年驾照考试科目一模拟试题
- 我的中国梦演讲稿200字范例
- 江苏省苏、锡、常、镇四市2011届高三调研测试(一)(化学)
- 我国功能沙发行业市场规模及竞争格局分析,行业渗透率不断提升「图」
- 1、【最新】数学中考压轴题大全(含答案、详细解析版)
- 2018-2019年高中物理天津高二期中考试测试试卷【9】含答案考点及解析
- C语言课程设计-酒店客房管理系统说明书
- 新学年学校常规管理实施方案正式版
- 2020年一级建造师考试真题及答案解析《专业工程管理与实务(建筑工程)》
- 阅读材料中英文对照35篇(2016)