微机原理及接口技术习题解答
更新时间:2024-06-16 15:52:01 阅读量: 综合文库 文档下载
- 微机原理与接口技术推荐度:
- 相关推荐
习题2
2.1 8086CPU具有 20 条地址线,可直接寻址 1MB 容量的内存空间,在访问I/O端口时,使用地址线 16条 ,最多可寻址 64K 个I/O端口。
2.3 8086CPU中的指令队列的作用是 预取指令 ,其长度是 6 字节。
2.5 8086的标志寄存器分为 6 个 状态 标志位和 3 个 控制 标志位,它们各自的含义和作用是什么?
【解答】标志寄存器各标志位的含义和作用如下表:
表2-1 标志寄存器FLAG中标志位的含义和作用
标志位 CF PF AF ZF SF OF TF IF 含义 进位标志 奇偶标志 辅助进位标志 零标志 符号标志 溢出标志 陷阱标志 中断允许标志 作用 CF=1,指令执行结果在最高位上产生一个进位或借位;CF=0,则无进位或借位产生 PF=1,结果低8位含偶数个1;PF=0,表示结果低8位含奇数个1 AF=1,运算结果的低4位产生了一个进位或借位;AF=0,则无此进位或借位 ZF=1,运算结果为零;ZF=0,则运算结果不为零 SF=1,运算结果为负数;SF=0,则结果为正数 OF=1,带符号数在进行运算时产生了溢出;OF=0,则无溢出 TF=1,8086CPU处于单步工作方式;TF=0,8086CPU正常执行程序 IF=1,允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求信号;IF=0,则禁止接受可屏蔽中断请求 DF=1,字符串操作指令按递减的顺序对字符串进行处理;DF=0,字符串操作指令按递增的顺序进行处理 DF 方向标志 2.7 8086的存储器采用 奇偶存储体 结构,数据在内存中的存放规定是 低字节存放在低地址中,高字节存放在高地址中,以低地址为字的地址,规则字是指 低字节地址为偶地址的字,非规则字是指 低字节的地址为奇地址的字。
习题3
3.4 分析下列指令的正误,对于错误的指令要说明原因并加以改正。
(1) MOV
(3) MOV (5) MOV (7) MOV
AH,BX (2) MOV [BX],[SI]
AX,[SI][DI] (4) MOV MYDAT[BX][SI],ES:AX BYTE PTR[BX],1000 (6) MOV BX,OFFSET MAYDAT[SI] CS,AX (8) MOV DS,BP AH,BX
【解答】
(1) MOV
错误,寄存器类型不匹配,可改为MOV AX,BX (2) MOV [BX],[SI]
错误,两个操作数不能都为存储单元,可改为MOV BX,[SI]或MOV [BX],SI
(3) MOV AX,[SI][DI]
错误,寻址方式中只能出现一个变址寄存器,可改为MOV AX,[BX][DI]。
(4) MOV MYDAT[BX][SI],ES:AX
错误,AX签不能有段跨越前缀,去掉ES:,改为MOV MYDAT[BX][SI],AX
(5) MOV BYTE PTR[BX],1000 错误,1000超出字节空间存储范围
(6) MOV BX,OFFSET MAYDAT[SI] ;正确 (7) MOV CS,AX
错误,MOV指令CS不能做目的操作数,可改为MOV DS,AX
(8) MOV DS,BP ;正确
注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。
3.5 设VAR1、VAR2为字变量,LAB为标号,分析下列指令的错误之处并加以改正。
(1) ADD VAR1,VAR2 (2) MOV AL,VAR2
(3) SUB AL,VAR1 (4) JMP LAB[SI] (5) JNZ VAR1 (6) JMP NEAR LAB
【解答】
(1) ADD VAR1,VAR2
错误,两个操作数不能都为存储单元,可改为 MOV BX,VAR2
ADD VAR1,BX
(2) MOV AL,VAR2
错误,数据类型不匹配,可改为MOV AX,VAR2
(3) SUB AL,VAR1
错误,数据类型不匹配,可改为SUB AX,VAR1
(4) JMP LAB[SI]
错误,寄存器相对寻址形式中不能用标号做位移量,可改为JMP VAR1[SI]
(5) JNZ VAR1
错误,条件跳转指令只能进行段内短跳转,所以后面只能跟短标号。可改为JNZ LAB
(6) JMP NEAR LAB
错误,缺少运算符PTR,可改为JMP NEAR PTR LAB
注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。 3.6 写出能够完成下列操作的8086CPU指令。
(1) 把4629H传送给AX寄存器; (2) 从AX寄存器中减去3218H; (3) 把BUF的偏移地址送入BX中。
【解答】
(1) MOV AX,4629H (2) SUB AX,3218H (3) LEA BX,BUF
3.7 根据以下要求写出相应的汇编语言指令。
(1) 把BX和DX寄存器的内容相加,结果存入DX寄存器中;
(2) 用BX和SI的基址变址寻址方式,把存储器中的一个字节与AL内容相加,并保存在AL寄存器中;
(3) 用寄存器BX和位移量21B5H的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器单元中;
(4) 用位移量2158H的直接寻址方式把存储器中的一个字与数3160H相加,并把结果送回该存储器中;
(5) 把数25H与(AL)相加,结果送回寄存器AL中。 【解答】
(1) ADD DX,BX (2) ADD AL,[BX][SI] (3) ADD 21B5H[BX],CX
(4) ADD WORD PTR [2158H],3160H (5) ADD AL,25H
3.8 写出将首地址为BLOCK的字数组的第6个字送到CX寄存器的指令序列,要求分别使用以下几种寻址方式:
(1) 以BX的寄存器间接寻址 (2) 以BX的寄存器相对寻址 (3) 以BX、SI的基址变址寻址
【解答】
(1) LEA BX,BLOCK+10
MOV CX,[BX]
(2) LEA BX,BLOCK
MOV CX,10[BX]
(3) LEA BX,BLOCK
MOV SI,10 MOV CX,[BX][SI]
3.9 执行下列指令后,AX寄存器中的内容是什么?
TABLE DB 10,20,30,40,50
ENTRY DW 3 ……
MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,[BX] AX=
【解答】AX= 3228H
3.10 下面是将内存一字节数据高4位和低4位互换并放回原位置的程序,找出错误并改正。
DATA SEGMENT
DD1 DB 23H DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX
LEA SI,OFFSET DD1 MOV AL,[SI] MOV CL,4 RCR AL,CL MOV [SI],AL MOV AH,4CH INT 21H
CODE ENDS
END START
【解答】程序第8行错误:LEA SI,OFFSET DD1,应去掉OFFSET;
程序第10行错误:RCR AL,CL,应使用ROR或ROL,改为ROR AL,CL3.11 已
知用寄存器BX作地址指针,自BUF所指的内存单元开始连续存放着3个无符号数字数据,编程序求它们的和,并将结果存放在这3个数之后。
【解答】参考程序如下:
LEA BX,BUF
MOV AX,[BX] ADD AX,[BX+2] ADD AX,[BX+4] MOV [BX+6],AX
3.12 分析汇编语言源程序应该由哪些逻辑段组成?各段的作用是什么?语句标号和变量应具备哪3种属性?
【解答】汇编语言源程序应该由若干个逻辑段组成,可以有若干个数据段、代码段、堆栈段和附加数据段,至少要有一个代码段。各段的作用如下:
(1)代码段用来存放程序和常数。 (2)数据段用于数据的保存。
(3)堆栈段用于保护数据,尤其在子程序调用、中断过程中进行现场信息保护。 (4)附加数据段用于数据的保存。
语句标号和变量应具备的3种属性:段属性、偏移属性和类型属性。 3.13 执行完下列程序后,回答指定的问题。
MOV AX,0 MOV BX,2 MOV CX,50 LP:ADD AX,BX
ADD BX,2 LOOP LP
问:(1) 该程序的功能是 。
(2) 程序执行完成后,(AX)= 。 【解答】
(1)完成0到100间所有偶数求和的功能。 (2)2550
3.14 编写程序,计算下面函数的值。
?2x?s??3x?4x?(x?0)(0??x??10)
x?10【解答】
DATA SEGMENT X DW 34 S DW ? DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX
MOV AX,X ;将X送到AX中 CMP AX,0 ;(AX)>0吗? JL DOUB ;是,转向doub
CMP AX,10 ;否,(ax)<10吗?
JLE TRIB ;是,转向trib SAL AX,1 ;否,乘以4 SAL AX,1 JMP EXIT
DOUB: SAL AX,1 ;乘以2 JMP EXIT
TRIB: SAL AX,1 ;乘以3 ADD AX,X
EXIT: MOV S,AX ;保存结果 MOV AH,4CH ;结束 INT 21H CODE ENDS
END START
注意,在比较的过程中使用的是针对带符号数的跳转指令,χ应该看作带符号数。程序中还用了移位指令代替了乘法指令。
3.15 从键盘输入一系列字符,以回车符结束,编程统计其中非数字字符的个数。 【解答】
DATA SEGMENT
BLOCK DB 100 DUP (?) COUNT DB ? DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV DL,0
LEA SI,BLOCK LP: MOV AH,1 INT 21H
CMP AL,0DH JZ EXIT
MOV [SI],AL CMP AL,30H JAE NEXT CMP AL,39H JBE NEXT INC DL NEXT: INC SI JMP LP
EXIT: MOV COUNT,DL MOV AH,4CH INT 21H CODE ENDS
END START
3.16 已知在内存中从BLOCK单元起存放有20个带符号字节数据,统计其中负数的个数并放入COUNT单元。
【解答】
DATA SEGMENT
BLOCK DB -7,1,12,-90,-70,34,-1,56,45,-12 DB -3,-4,23,0,12,11,-9,-8,67,-56 CN EQU $-BLOCK COUNT DB ? DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:MOV AX,DATA MOV DS,AX MOV DL,0
LEA SI,BLOCK MOV CX,CN LP: MOV AL,[SI] TEST AL,80H JZ NEXT INC DL NEXT: INC SI LOOP LP
MOV COUNT,DL MOV AH,4CH INT 21H CODE ENDS
END START
3.17 从键盘输入一个大写英文字母,将其转换为小写字母并显示出来,要求输入其它字符时,能够有出错提示信息。
【解答】
DATA SEGMENT
MESS DB 'INPUP ERROR!',0AH,0DH,'$' DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV AH,01H INT 21H
CMP AL,'A' JB ERR CMP AL,'Z' JA ERR
ADD AL,20H MOV DL,AL MOV AH,02H INT 21H JMP EXIT
ERR: MOV DX,OFFSET MESS MOV AH,09H INT 21H
EXIT: MOV AH,02H INT 21H CODE ENDS
END START
3.18 比较宏指令与子程序,它们有何异同?它们的本质区别是什么?
【解答】宏与子程序两者的相同之处在于都是用来处理在编程过程中多次使用的功能程序的方法,两者均能简化源程序。
两者的区别在于:
(1)宏调用通过宏指令名进行,汇编时,随时调用随时展开,并不简化目标程序;子程序调用是在程序执行期间执行CALL指令,代码只在目标程序中出现一次,所以也简化了目标程序。
(2)宏调用时的参数由汇编程序通过实参转换成形参的方式传递,具有很大的灵活性。宏定义中允许设置若干形式参数代替数值、指令、寄存器、各种字符串等。宏调用时可用程
序所需要的实际参数来替换,使编程人员感觉非常灵活;而子程序的参数传递要麻烦得多。
(3)宏调用在汇编时完成,不需要额外的时间开销;子程序调用和子程序返回都需要时间,还涉及堆栈操作。
故若优先考虑速度,用宏指令;若优先考虑存储空间,用子程序。 3.19 试定义将一位十六进制数转换为ASCII码的宏指令。 【解答】
HEXTOA MACRO
AND AL,0FH CMP AL,9 JNA HEXTOA1 ADD AL,7H
HEXTOA1:ADD AL,30H ENDM
3.20 试定义一个字符串搜索宏指令,要求文本首地址和字符串首地址用形式参数。 【解答】
SCANC MACRO ADDRESS,CHAR1 MOV SI,ADDRESS MOV AL,[SI] MOV DI,CHAR1 REPNZ SCASB ENDM
正在阅读:
微机原理及接口技术习题解答06-16
漫画《父与子》读后感精选范文07-30
常见的共沸物09-27
第一章配位化学基础08-09
基于图像特征的星载SAR图像模拟研究05-24
Dans le ciel les étoiles夜空中最亮的星(法语版)06-07
阿胶糕的功效适用人群禁忌注意事项07-31
330KV吉祥变监理规划10-05
圆锥摆模型和竖直面内圆周运动04-26
在青年五四座谈会上的讲话2021年最新08-17
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 微机
- 习题
- 解答
- 接口
- 原理
- 技术
- 片仔癀盈利能力分析&可持续能力分析
- 桥梁博士-基础版V1.0用户手册
- 高效低污染燃煤发电项目IPO上市咨询(2013年最新细分市场+募投可
- 教练理论
- 第19炼 利用函数证明数列不等式
- 《经济地理学》复习思考题
- 2018-2019学年高中数学人教B版必修一学案:1章末复习提升
- 隧道监理实施细则
- 精细化学品分析课件完整版 - 图文
- 谭氏来源
- 2014年土地市场正向需求诱导型转变每日一讲(12月17日)
- 供用电系统教材
- 辽宁省事业单位延迟退休问题研究
- 企业并购中的整合效应及风险分析---以海尔并购通用家电为例
- 理论力学习题集
- 2017-2018学年度第一学期仪器室工作总结
- 基于单片机的多路数据采集系统设计
- 智力竞赛抢答器PLC设计
- 行政诉讼选择题
- 互联网时代解说词--第三集-能量