微机原理、汇编语言与接口技术

合集下载

五邑大学16/32位微机原理、汇编语言及接口技术钱晓捷第2章-2

五邑大学16/32位微机原理、汇编语言及接口技术钱晓捷第2章-2
2.2 8088/8086的寻址方式
寻址方式——指CPU获得操作数的方法 操作数的存放位置: 1)在指令中,2)在寄存器中,3)在内存中
从8088/8086的指令格式入手,
立即数寻址方式 寄存器寻址方式 存储器寻址方式
进而熟悉8088/8086汇编语言指令格式,尤 其是其中操作数的表达方法 为展开8088/8086指令系统做好准备
寄存器名表示其内容(操作数)
MOV AX, BX
;AX←(BX)
演示
微机系统与接口技术
7
2.2.3 存储器寻址方式
操作数在主存储器中,用主存地址表示 程序设计时,8088采用逻辑地址表示主存地址
段地址在默认的或用段超越前缀指定的段寄存器中 指令中只需给出操作数的偏移地址(有效地址EA)
8086设计了多种存储器寻址方式 1、直接寻址方式 2、寄存器间接寻址方式 3、寄存器相对寻址方式 4、基址变址寻址方式 5、相对基址变址寻址方式
微机系统与接口技术
1
指令的组成 操作码 操要执行哪种操作,如传送、运算、 移位、跳转等操作,它是指令中不可缺少的组成部 分 操作数是指令执行的参与者,即各种操作的对象 有些指令不需要操作数,通常的指令都有一个或两 个操作数,也有个别指令有3个甚至4个操作数
微机系统与接口技术
14
相对寻址方式中的位移量
在寄存器相对和相对基址变址寻址方式中,其位
移量不仅可用常量表示,也可用符号表示 这个符号可以是变量名,例如 WVAR 变量,而且 支持多种表达形式 MOV AX, [DI+WVAR] ; ;等同于 MOV AX, WVAR[DI] MOV AX,[BX+SI+WVAR] ;等同于 MOV AX, [SI+WVAR] ;等同于 MOV AX, WVAR[BX+SI] ;等同于 MOV AX, WVAR[BX][SI]

16、32位微机原理、汇编语言与接口技术教程课后复习题答案

16、32位微机原理、汇编语言与接口技术教程课后复习题答案

《16/32 位微机原理、汇编语言及接口技术教程》部分习题参考解答第 1 章微型计算机系统概述〔习题 1.2 〕什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在PC 机、笔记本电脑、工作站、服务器上的微处理器。

单片机:是指通常用于控制领域的微处理器芯片,其部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。

DSP芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,部集成有高速乘法器,能够进行快速乘法和加法运算。

嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。

〔习题 1.5 〕说明微型计算机系统的硬件组成及各部分作用。

〔解答〕CPU CPU也称处理器,是微机的核心。

它采用大规模集成电路芯片,芯片集成了控制器、运算器和若干高速存储单元(即寄存器)。

处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。

存储器:存储器是存放程序和数据的部件。

外部设备:外部设备是指可与微机进行交互的输入(Input )设备和输出(Output )设备,也称I/O 设备。

I/O 设备通过I/O 接口与主机连接。

总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。

习题 1.6 〕什么是总线?微机总线通常有哪 3 组信号?各组信号的作用是什么?解答〕总线:传递信息的共用通道,物理上是一组公用导线。

3 组信号线:数据总线、地址总线和控制总线。

I/O 端口的地址信息。

1)地址总线:传输将要访问的主存单元或2)数据总线:传输读写操作的数据信息。

3)控制总线:协调系统中各部件的操作。

〔习题 1.7 〕简答如下概念:(1)计算机字长(2)取指-译码-执行周期(3)ROM-BIOS(4)中断(5)ISA 总线〔解答〕(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。

微机原理与接口技术汇编语言程序设计

微机原理与接口技术汇编语言程序设计

⑴汇编语言是机器语言的符号表示语言,因此,程序设 计人员可以充分利用机器硬件的全部功能,发挥机器的 长处。
⑵现在的微机系统中,底层的一些功能仍然靠 汇编语言程序来实现。例如机器的自检、系统初始化、 实际的输入输出操作,至今仍然是用汇编语言编制的 程序来完成。 ⑶汇编语言程序的效率通常高于高级语言程序。 所以在节省内存空间和提高程序运行速度的重要场合, 如实时控制,常常使用汇编语言来编制的。 鉴于以上理由,现在许多高级语言都设置有与 汇编语言程序接口的功能,以便于提高高级语言程序 的效率。
§4.3伪指令(伪操作)
伪指令是一种说明性语句,它本身不产生对应的机
器目标代码,它仅仅是告诉汇编程序,对后面的指令语 句和伪指令语句的操作数应该如何产生机器目标代码, 每条伪指令共分四边个字段:
伪致可以分为以下几类:
一、数据定义伪指令
[变量名] DB DW DD 操作数
变量也有三种属性:段、偏移量和类型。 ① 变量的段属性是变量所代表的数据区所在段的段
地址。由于数据区一般在存储器的数据段中,因此变
量的段地址常常在DS和ES寄存器中。 ② 变量的偏移量属性是该变量所在段的起始地址与 变量的地址之间的字节数。 ③ 变 量 的 类 型 属 性 有 BYTE( 字 节 ) 、 WORD
四、段定义伪指令 SEGMENT
段名 SEGMENT [定位类型][组合类型][‘类别名’] …... 段名 ENDS
段名:是逻辑段的标识符,不可缺省,表示逻辑段在存储器中
的地址, SEGMENT 和ENDS前的段名相同。
定位类型:
BYTE 表示该段起始地址可以在存储单元的任何字节地址; WORD 表示该段起始地址必须是偶数即地址末1位为0 ; PARA 表示该段起始地址在节的边界整数上,每16存储单元 为1节即地址末4位为0,定位类型缺省则默认为PARA ; PAGE 表示该段起始地址在页首,每256存储单元为1页即地 址末8位为0 。

微机原理与接口技术汇编语言程序教案

微机原理与接口技术汇编语言程序教案

微机原理与接口技术汇编语言程序教案第一章:汇编语言概述1.1 汇编语言的概念让学生了解汇编语言的定义、特点和作用。

让学生掌握汇编语言的基本组成元素,如指令、寄存器、操作数等。

1.2 汇编语言的表示方法让学生了解汇编语言的指令格式和操作数表示方法。

让学生掌握汇编语言的助记符及其含义。

1.3 汇编语言与机器代码的关系让学生了解汇编语言与机器代码的转换过程。

让学生掌握汇编语言指令与机器代码之间的对应关系。

第二章:汇编语言的语法规则2.1 指令语句的语法结构让学生了解指令语句的构成,包括操作码、寄存器、操作数等。

让学生掌握不同类型指令的语法规则,如数据传输指令、算术运算指令等。

2.2 伪指令和宏指令让学生了解伪指令和宏指令的概念及其作用。

让学生掌握伪指令和宏指令的语法规则和使用方法。

2.3 汇编语言的程序结构让学生了解汇编语言程序的组成部分,如数据段、代码段、堆栈段等。

让学生掌握汇编语言程序的格式和编写规范。

第三章:汇编语言的编程技巧3.1 寄存器的使用让学生了解寄存器的作用和分类,如AX、BX、CX、DX等。

让学生掌握寄存器在汇编语言编程中的应用技巧。

3.2 数据传输指令让学生了解数据传输指令的用法,如MOV、PUSH、POP等。

让学生掌握数据传输指令在汇编语言编程中的应用技巧。

3.3 算术运算指令让学生了解算术运算指令的用法,如ADD、SUB、MUL、DIV等。

让学生掌握算术运算指令在汇编语言编程中的应用技巧。

第四章:汇编语言程序设计实例4.1 实例一:计算两个数的和让学生了解程序设计的基本步骤,如编写算法、选择寄存器等。

让学生掌握汇编语言编程的基本技巧,如数据传输、算术运算等。

4.2 实例二:排序算法(冒泡排序)让学生了解排序算法的原理和实现方法。

让学生掌握汇编语言编程中循环结构和条件判断的使用技巧。

4.3 实例三:字符串操作让学生了解字符串的基本操作,如字符串长度计算、字符串复制等。

让学生掌握汇编语言编程中字符串操作的相关指令和技巧。

微机原理、汇编与接口技术103页PPT

微机原理、汇编与接口技术103页PPT
23、一切节省,归根到底都归结为时间的节省。——马克思 24、意志命运往往背道而驰,决心到最后会全部推倒。——莎士比亚
25、学习是劳动,是充满思想的劳动。——乌申斯基
谢谢!
微机原理、汇编与接口技术

26、我们像鹰一样,生来就是自由的 ,但是 为了生 存,我 们不得 不为自 己7、法律如果不讲道理,即使延续时 间再长 ,也还 是没有 制约力 的。— —爱·科 克

28、好法律是由坏风俗创造出来的。 ——马 克罗维 乌斯

29、在一切能够接受法律支配的人类 的状态 中,哪 里没有 法律, 那里就 没有自 由。— —洛克

30、风俗可以造就法律,也可以废除 法律。 ——塞·约翰逊
21、要知道对好事的称颂过于夸大,也会招来人们的反感轻蔑和嫉妒。——培根 22、业精于勤,荒于嬉;行成于思,毁于随。——韩愈

微机原理 汇编语言与接口技术 (周杰英 著) 人民邮电出版社

微机原理 汇编语言与接口技术 (周杰英 著) 人民邮电出版社

h 目的操作数
源操作数
k(1) MOV AX,100
寄存器寻址
立即数寻址
(2) MOV AX,[100]
寄存器寻址
直接寻址
(3) MOV DL,[BP+SI] 寄存器寻址
基址变址寻址
(4) MOV [BX],CX
寄存器间接寻址 寄存器寻址
(5) MOV DX,[SI]
寄存器寻址
寄存器间接寻址
(6) MOV 1234H[BX],DS 寄存器相对寻址 寄存器寻址
www.kh 课d后a答案w网.com
课后答案网
周期来完成 16 位数据的传送,而对于非规则字则用相邻两个总线周期来完成该字的存
储操作,先取其奇地址字节(即数据的低位字节),然后存取偶地址字节。在组成存储
系统 时, 总是偶 地址 单元的 数据 通过 AD0~AD7 传送 ,而 奇地址 单元 的数据 通 过 AD8~AD15 传送,即通过总线高字节传送。 BHE 信号和 A0 信号控制存储器读写见下表:
优点? 解:总线接口部分和执行部分是分开的,每当 EU 执行一条指令时,造成指令队列空出 2 个或空出一个指令字节时 ,BIU 马上从内存中取出下面一条或几条指令,以添满他 的指令队列。这样,一般情况下,CPU 在执行完一条指令后,便可马上执行下一条指 令,不像以往 8 位 CPU 那样,执行完一条指令后,需等待下一条指令。即 EU 从指令队 列中取指令、执行指令和 BIU 补充指令队列的工作是同时进行的。这样大大提高了 CPU 利用率,降低了系统都对存储器速度的要求。
课后答案网
www.kh 课d后a答案w网.com
第一章 绪论
习题与答案
m 1. 把下列二进制数转换成十进制数、十六进制数及 BCD 码形式。 o (1) 10110010B =

微机原理与接口技术汇编语言程序教案

微机原理与接口技术汇编语言程序教案

微机原理与接口技术汇编语言程序教案第一章:汇编语言基础1.1 汇编语言简介汇编语言的定义与发展历程汇编语言与机器语言的关系汇编语言的优势与局限性1.2 汇编语言的组成指令、操作码和操作数寄存器、标志寄存器及指令集1.3 汇编语言的语法规则指令格式与操作数寻址方式指令间的符号命名规则数据声明与宏定义第二章:汇编语言编程步骤与实例2.1 汇编语言编程步骤分析需求、确定算法选择合适的寄存器和寻址方式编写汇编代码调试与优化2.2 汇编语言编程实例编写一个简单的加法程序实现一个字符串的逆序输出第三章:微机原理概述3.1 微机的硬件系统结构中央处理器(CPU)存储器输入输出设备3.2 微机的工作过程指令的获取、解码与执行数据的传输与处理3.3 微机的性能指标频率、缓存与内存容量处理速度与功耗第四章:接口技术基础4.1 接口的概念与分类硬件接口与软件接口并行接口与串行接口4.2 接口的技术参数数据宽度、传输速率与协议接口的电气特性与物理形态4.3 接口的设计与实现接口电路的设计方法接口芯片的选择与应用第五章:汇编语言与接口技术的结合5.1 汇编语言与接口编程汇编语言控制接口的方法接口指令与中断处理5.2 实例:汇编语言实现串口通信串口通信的基本原理编写汇编代码实现串口收发数据5.3 实例:汇编语言控制打印机打印机接口的原理与驱动方法编写汇编代码实现打印机控制第六章:汇编语言与中断系统6.1 中断系统概述中断的概念与分类中断处理程序的执行过程6.2 中断向量与中断服务程序中断向量的定义与寻址中断服务程序的编写与调用6.3 汇编语言中断指令与中断编程INT指令的使用方法非屏蔽中断与可屏蔽中断中断编程实例第七章:汇编语言与DMA传输7.1 DMA传输原理DMA的概念与作用DMA与CPU的协同工作方式7.2 DMA控制器与DMA编程DMA控制器的功能与接口DMA编程步骤与指令集7.3 汇编语言实现DMA传输编写DMA服务程序DMA传输过程的监控与调试第八章:汇编语言与A/D转换8.1 A/D转换原理A/D转换器的工作原理与性能指标A/D转换的过程与数据类型8.2 A/D转换器的接口与驱动A/D转换器的接口电路设计A/D转换器的驱动程序编写8.3 汇编语言实现A/D转换编写A/D转换服务程序A/D转换在实际应用中的实现第九章:汇编语言与I/O控制9.1 I/O控制概念与方法I/O控制的概念与分类I/O控制的编程方法与接口9.2 汇编语言I/O指令与编程I/O指令的使用方法与限制端口地址与I/O编程实例9.3 汇编语言实现I/O控制编写I/O服务程序I/O控制应用实例第十章:汇编语言程序设计实践10.1 汇编语言程序设计流程需求分析与算法设计寄存器分配与指令选择代码编写与调试10.2 汇编语言与操作系统应用汇编语言编写系统调用程序汇编语言实现进程管理与同步10.3 汇编语言与设备驱动程序开发设备驱动程序的概念与作用汇编语言编写设备驱动程序的方法与步骤10.4 综合实例:汇编语言实现一个小型的操作系统设计目标与功能需求主要模块与实现方法系统测试与优化第十一章:汇编语言与故障诊断计算机系统故障的类型与等级故障诊断的重要性与挑战11.2 汇编语言在故障诊断中的应用汇编语言诊断程序的特点与优势故障诊断程序的编写方法与步骤11.3 常见故障诊断实例处理器故障的诊断与处理存储器故障的诊断与处理输入输出设备故障的诊断与处理第十二章:汇编语言与性能分析12.1 性能分析的基本概念计算机系统性能的评价指标性能分析的方法与工具12.2 汇编语言程序的性能优化指令选择与优化数据访问与缓存利用程序结构的优化12.3 性能分析实例汇编语言程序性能分析的方法性能瓶颈的识别与改进策略第十三章:汇编语言与安全编程计算机系统安全的重要性常见安全威胁与防护措施13.2 汇编语言程序的安全性汇编语言程序的脆弱性安全编程的最佳实践13.3 安全编程实例汇编语言程序的漏洞分析安全漏洞的修复与防护措施第十四章:汇编语言与嵌入式系统14.1 嵌入式系统的基本概念嵌入式系统的定义与特点嵌入式系统的应用领域14.2 汇编语言在嵌入式系统中的应用嵌入式系统编程的特殊性汇编语言与硬件的紧密耦合14.3 嵌入式系统实例汇编语言编写嵌入式系统程序的方法嵌入式系统程序的调试与优化第十五章:汇编语言与现代计算机体系结构15.1 现代计算机体系结构的发展流水线技术、超标量和超流水线多核处理器与并行计算15.2 汇编语言与现代计算机体系结构的适配汇编语言在多核处理器上的编程汇编语言与向量处理器的接口15.3 现代计算机体系结构下的汇编语言编程汇编语言程序在现代计算机上的优化面向现代计算机体系结构的汇编语言编程实例重点和难点解析本文主要介绍了汇编语言程序设计、微机原理与接口技术的相关知识。

[计算机硬件及网络]微机原理与接口技术汇编语言程序设计

[计算机硬件及网络]微机原理与接口技术汇编语言程序设计

ORG 200H
;目标程序的偏移量
DATA SEGMENT
;数据段开始
指令性语句和指示性语句的最大区别就是指示性 语句在标识符和伪指令助记符没有冒号
4.2 汇编语言程序结构
段定义伪指令SEGMENT、ENDS、ASSUME
伪指令SEGMENT和ENDS总是成对出现。SEGMENT用来定义 段开始,ENDS是来定义段结束。这一段伪指令可以将源程序 分为几个段,通常为数据段,堆栈段和代码段。
汇编语句语句格式
指令性语句的格式如下:
<标识符:> 指令助记符 目标操作数 <,源操作数> <;注释>
START: MOV AX,1090H
;将16进制数1090H送入AX
INC BX
指示性语句的格式如下:
<标识符> 伪指令助记符 <操作数1,操作数2…> <;注释>
CR DB ODH
;在字节单元CR处存放数据0DH
段,所以错误信息并不
←“no stack segment”
影响程序正常执行。
DEBUG和MASM的区别
DEBUG是调试器,它的主要用途在于除错,能够 观察每条汇编语句运行后的结果,方便的修正汇编 程序中的错误。DEBUG中必须使用16进制的数。
MASM是一种编译器,它能将汇编源程序进行编 译、链接形成可执行文件,但汇编程序必须使用规 范书写方式,源程序中除了指令性语句,还必须加 入许多与指令语句无关的指示性语句,以供编译器 识别。 MASM中的数据默认为10进制。
汇编源文件 .ASM
汇编 MASM.EXE
目执行程序 .EXE
汇编语言语句类型
指令性语句

汇编语言、微机原理及接口技术(第3版)郑初华_课后题解答

汇编语言、微机原理及接口技术(第3版)郑初华_课后题解答

第1章进制及码元1.进制转换129= 81H= 10000001B=201Q298= 12AH= 100101010B=452Q1000= 3E8H= 1111101000B= 1750Q5DH= 1011101 B= 135 Q= 93 D3E8H= 1111101000 B= 1750Q= 1000 D;357Q=11101111 B= 0EF H= 239 D3.数据表示范围:一字节的无符号数表示范围为0~255,有符号数(补码)表示范围为-l28—+127。

一个字的无符号数表示范围为0~65535,有符号数(补码)表示范围为—32768~+32767。

N位二进制数的无符号数表示范围为0~(2N-1),有符号数(补码)表示范围为-2N-1~(2N-1-1).4.35H代表的ASCII字符为'5',代表十六进制数时等价的十进制值为53 ,代表压缩8421BCD码等价的十进制值为35 ,代表非压缩8421BCD码等价的十进制值为5。

5.FFH代表无符号数时等价的十进制值为255 ,代表补码有符号数时等价的十进制值为一1 ,代表反码有符号数时等价的十进制值为一0 ,代表原码有符号数时等价的十进制值为一l27。

6.--20的8位二进制补码为ECH ,原码为94H ,反码为EBH 。

158的16位二进制补码为009EH,原码为009EH ,反码为009EH 。

第2章微机硬件基础1.计算机系统硬件的五大功能部件及其主要功能?答:硬件系统按功能模块分为运算器、控制器、存储器、输入设备、输出设备。

运算器主要完成算术运算、逻辑运算及移位运算,其中主要包括算术逻辑运算单元Arithmetic Logic Unit,ALU)和暂存数据(原始、中间、结果)的寄存器(Register,R)。

控制器实现对计算机部件的协调调度完成指令的分析执行,其中主要有程序计数器Program Counter,PC)或叫指令指针(Instruction Pointer,IP)、指令寄存器(Instruction register,IR)、指令译码器(Instruction Decoder,ID)、微操作命令发生器、时序发生器等。

《微机原理、汇编语言与接口技术》韩晓茹(习题解答全套

《微机原理、汇编语言与接口技术》韩晓茹(习题解答全套
1.5将十进制数(123.025)10和(96.12)10转换成二进制数和十六进制数。
答:(123.025)10=(11111011.00000110)2=(7B.06)16
1.6将十六进制数(3E.7)16和(A4.B)16转换成十进制数。
答:(3E.7)16=(62.4375)10
(A4.B)16=(164.6875)10
[-Y]补=[[Y]补]求补=[[-0001111B]补]求补=[11110001B]求补=00001111B。
[X-Y]补=[X]补+[-Y]补=00100101B+00001111B=0011 0100B

2.18086/8088 CPU分为哪两大功能部件?其各自的主要功能是什么?8086/8088 CPU中有哪些寄存器?各有什么用途?
微型计算机由中央处理器、存储器、输入/件系统和软件系统两部分组成。也就是在微型计算机的外面加上电源和外部设备,然后配上系统软件和应用软件构成的系统。
1.3什么是系统总线?按照信号的种类不同可以把系统总线分成哪三类?它们各有什么特点?
答:连接微处理器与存储器、输入输出接口,用以构成完整的微型计算机的总线称为系统总线。系统总线分为数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。
[-78]原=1100 1110B[-78]反=1011 0001B[-78]补=1011 0010B
1.9设[X]补=11001010B,[Y]补=01001010B,求它们的真值。
答:X的真值是-54,Y的真值是74。
1.10设X=+37,Y=-15,求[X-Y]补。
答:[X]补=[+37]补=[+100101B]补=00100101B。

微机原理,汇编语言及接口技术第2版课后习题答案

微机原理,汇编语言及接口技术第2版课后习题答案

第1章作业答案1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?把CPU(运算器和控制器)用大规模集成电路技术做在一个芯片上,即为微处理器。

微处理器加上一定数量的存储器和外部设备(或外部设备的接口)构成了微型计算机。

微型计算机与管理、维护计算机硬件以及支持应用的软件相结合就形成了微型计算机系统。

1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?CPU主要由起运算器作用的算术逻辑单元、起控制器作用的指令寄存器、指令译码器、可编程逻辑阵列和标志寄存器等一些寄存器组成。

其主要功能是进行算术和逻辑运算以及控制计算机按照程序的规定自动运行。

1.3微型计算机采用总线结构有什么优点?采用总线结构,扩大了数据传送的灵活性、减少了连线。

而且总线可以标准化,易于兼容和工业化生产。

1.4数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?数据总线是双向的(数据既可以读也可以写),而地址总线是单向的。

8086CPU为了减少芯片的引脚数量,采用数据与地址线复用,既作数据总线也作为地址总线。

它们主要靠信号的时序来区分。

通常在读写数据时,总是先输出地址(指定要读或写数据的单元),过一段时间再读或写数据。

第2章作业答案2.1 IA-32结构微处理器直至Pentillm4,有哪几种?80386、30486、Pentium、Pentium Pro、PeruiumII、PentiumIII、Pentium4。

2.6IA-32结构微处理器有哪几种操作模式?IA一32结构支持3种操作模式:保护模式、实地址模式和系统管理模式。

操作模式确定哪些指令和结构特性是可以访问的。

2.8IA-32结构微处理器的地址空间如何形成?由段寄存器确定的段基地址与各种寻址方式确定的有效地址相加形成了线性地址。

若末启用分页机制,线性地址即为物理地址;若启用分页机制,则它把线性地址转为物理地址。

微机原理与接口技术第二版课后习题答案完整版

微机原理与接口技术第二版课后习题答案完整版

习题11.什么是汇编语言,汇编程序,和机器语言答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合;汇编语言是面向及其的程序设计语言;在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码;这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言;使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序;2.微型计算机系统有哪些特点具有这些特点的根本原因是什么答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便;这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上;3.微型计算机系统由哪些功能部件组成试说明“存储程序控制”的概念;答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成;“存储程序控制”的概念可简要地概括为以下几点:①计算机指硬件应由运算器、存储器、控制器和输入/输出设备五大基本部件组成;②在计算机内部采用二进制来表示程序和数据;③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义;④五大部件以运算器为中心进行组织;4.请说明微型计算机系统的工作过程;答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作;如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能;5.试说明微处理器字长的意义;答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数;它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价;计算机的字长越大,其性能越优越;在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快;6.微机系统中采用的总线结构有几种类型各有什么特点答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总线、IEEE1394总线、USB总线等类型;7.将下列十进制数转换成二进制数、八进制数、十六进制数;① 4.7510=0100.112=4.68=4.C16② 2.2510=10.012=2.28=2.816③ 1.87510=1.1112=1.78=1.E168.将下列二进制数转换成十进制数;① 1011.0112=11.610② 1101.010112=13.5810③ 111.0012=7.2109.将下列十进制数转换成8421BCD码;① 2006=0010 0000 0000 0110BCD② 123.456=0001 0010 0011.0100 0101 0110BCD10.求下列带符号十进制数的8位基2码补码;① +127补= 01111111② -1= 11111111补③ -128= 10000000补= 00000001④+1补11.求下列带符号十进制数的16位基2码补码;① +655补= 0000001010001111② -1补=1111111111111110③ -3212补=1111011101011100④ +100=0000000001100100补习题 21.8086 CPU在内部结构上由哪几部分组成各部分的功能是什么答:8086 CPU内部由两大独立功能部件构成,分别是执行部件和总线接口部件;执行部件负责进行所有指令的解释和执行,同时管理有关的寄存器;总线接口部件是CPU在存储器和I/O设备之间的接口部件,负责对全部引脚的操作;2.简述8086 CPU的寄存器组织;答:8086 CPU内部共有14个16位寄存器,按用途可分为数据寄存器,段寄存器,地址指针与变址寄存器和控制寄存器;数据寄存器包括累加器,基址寄存器,计数器,和数据寄存器;段寄存器用来存放各分段的逻辑段基值,并指示当前正在使用的4个逻辑段;地址指针与变址寄存器一般用来存放主存地址的段内偏移地址,用于参与地址运算;控制寄存器包括指令寄存器和标识寄存器;3.试述8086 CPU标志寄存器各位的含义与作用;答:标志寄存器是16位的寄存器,但实际上8086只用到9位,其中的6位是状态标识位,3位是控制标识位;状态标志位分别是CF,PF,AF,ZF,SF,和OF;控制标志位包括DF,IF,TF;CF:进位标志位;算数运算指令执行后,若运算结果的最高位产生进位或借位,则CF=1,否则CF=0;PF:奇偶标志位;反应计算结果中1的个数是偶数还是奇数;若运算结果的低8位中含有偶数个1,则PF=1;否则PF=0.AF:辅助进位标志;算数运算指令执行后,若运算结果的低4位向高4位产生进位或借位,则AF=1;否则AF=0.ZF:零标志位;若指令运算结果为0,则ZF=1;否则ZF=0;SF:符号标志位;它与运算结果最高位相同;OF:溢出标志位;当补码运算有溢出时,OF=1;否则OF=0;DF:方向标志位;用于串操作指令,指令字符串处理时的方向;IF:中断允许标志位;用来控制8086是否允许接收外部中断请求;TF:单步标志位;它是为调试程序而设定的陷阱控制位;4.8086 CPU状态标志和控制标志有何不同程序中是怎样利用这两类标识的8086的状态标志和控制标识分别有哪些答:状态标志位反应了当前运算和操作结果的状态条件,可作为程序控制转移与否的依据;它们分别是CF,PF,AF,ZF,SF,和OF;控制标志位用来控制CPU的操作,由指令进行置位和复位,控制标志位包括DF,IF,TF;5.将1001 1100和1110 0101相加后,标识寄存器中CF, PF, AF, ZF, SF, OF各为何值答:CF=1,PF=1,AF=1,ZF=0,SF=1,OF=06.什么是存储器的物理地址和逻辑地址在8086系统中,如何由逻辑地址计算物理地址答:逻辑地址是思维性的表示,由段地址和偏移地址联合表示的地址类型叫逻辑地址;物理地址是真实存在的唯一地址,指的是存储器中各个单元的单元号;在8086系统中,物理地址=段地址×10H+偏移地址7.段寄存器CS=1200H,指令指针寄存器IP=4000H,此时,指令的物理地址为多少指向这一地址的CS指和IP值是唯一的吗答:此指令的物理地址=1200H×10H+4000H=16000H 并且指向这一物理地址的CS值和IP值并不是唯一的;8.在8086系统中,逻辑地址FFFF:0001,00A2:37F和B800:173F的物理地址分别是多少答:9.在8086系统中,从物理地址388H开始顺序存放下列3个双字节的数据651AH,D761H和007BH,请问物理地址388H,389H,38AH,38BH,38CH和38DH 6个单元中分别是什么数据答:388H=1AH,389H=65H,38AH=61H,38BH=DTH,38CH=7BH,38DH=00H10.8086微处理器有哪几种工作模式各有什么特点答:8086微处理器有最大和最小工作模式;在最小模式下:8086 CPU直接产生全部总线控制信号DT/R,DEN,ALE,M/IO和命令输出信号RD,WR,INTA并提出请求访问总线的逻辑信号HOLD,HLDA;在最大工作模式下,必须配置8288总线控制器,并且根据8086提供的状态信号S2,S1,S0,输出读写控制命令,可以提供灵活多变的系统配置,以实现最佳的系统性能;11.简述8086引脚信号中M/IO,DT/R,RD,WR,ALE,DEN和BHE的作用;答:M/IO:输出信号,高电平时,表示CPU与存储器之间数据传输;低电平时,表示CPU与I/O设备之间数据传输;DT/R:控制其数据传输方向的信号;DT/R=1时,进行数据发送;DT/R=0时,进行数据接收;RD:CPU的读信号,RD=0时,表示8086为存储口或I/O端口读操作;WR:CPU的写信号,WR =0时,表示8086为存储口或I/O端口写操作;ALE:地址存锁信号,在T1能时刻有效;DEN:数据选通信号,当DEN有效时,表示允许传输;BHE:数据总线允许信号,与A0组合使用,表示是否访问奇地址字节;12.简述8086读总线周期和写总线周期和引脚上的信号动尖态变化过程;8086的读周期时序和写周期时序的区别有哪些答:在8086读周期内,有关总线信号的变化如下:①M/IO:在整个读周期保持有效,当进行存储器读操作时,M/IO为高电平;当进行I/O端口读操作时,M/IO为低电平;②A19/S6~A16/S3:在T1期间,输出CPU要读取的存储单元或I/O端口的地址高4位;T2~T4期间输出状态信息S6-S3;③BHE/S7:在T1期间,输出BHE有效信号BHE为低电平,表示高8位数据总线上的信息可以使用,BHE信号通常作为奇地址存储体的体选信号偶地址存储体的体选信号是最低地址位A0;T2—T4期间输出高电平;④AD l5~AD0:在T1期间,输出CPU要读取的存储单元或I/O端口的地址A15~A0;T2期间为高阻态,T3~T4期间,存储单元或I/O端口将数据送上数据总线;CPU从AD l5~AD0上接收数据;⑤ALE:在T1期间地址锁存有效信号,为一正脉冲,系统中的地址锁存器正是利用该脉冲的下降沿来锁存A19/S6~A16/S3,AD l5~AD0中的20位地址信息以及BHE;⑥RD:T2期间输出低电平送到被选中的存储器或I/O接口,注意,只有被地址信号选中的存储单元或I/O端口,才会被RD信号从中读出数据数据送上数据总线AD l5~AD0;⑦DT/R:在整个总线周期内保持低电平,表示本总线周期为读周期,在接有数据总线收发器的系统中,用来控制数据传输方向;⑧DEN:在T2~T3期间输出有效低电平,表示数据有效,在接有数据总线收发器的系统中,用来实现数据的选通;总线写操作的时序与读操作时序相似,其不同处在于:①AD l5~AD0:在T2~T4期间送上欲输出的的数据,而无高阻态;②W R:从T2~T4,W R引脚输出有效低电平,该信号送到所有的存储器和I/O 接口;注意,只有被地址信号选中的存储单元或I/O端口才会被W R信号写入数据;③DT/R:在整个总线周期内保持高电平,表示本总线周期为写周期,在接有数据总线收发器的系统中,用来控制数据传输方向;习题31.假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量V AL的偏移地址为0050H,请指出下列指令原操作数是什么寻址方式,其物理地址是多少(1)MOV AX, 0ABH 2 MOV AX, 100H3 MOV AX, V AL4 MOV BX, SI5 MOV AL, V ALBX6 MOV CL, BXSI7 MOV V ALSI, BX 8 MOV BPSI, 100答:1 立即数寻址,无物理地址2 直接寻址,物理地址=2000H×10H+100H=20100H3 直接寻址,物理地址=2000H×10H+0050H=20050H4 寄存器间接寻址,物理地址=2000H×10H+00A0=200A0H5 相对寄存器寻址,物理地址=2000H×10H+0050+0100H=20150H6 基址加变寻址,物理地址=2000H×10H+0100H+00A0H=201A0H7 寄存器寻址,无物理地址8 立即数寻址,无物理地址2.已知SS=0FFA0H,SP=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图;答:“8057H”进栈,则SP自动从00B0H指向00B2H,“0F79H”进栈,则SP自动从00B2H指向00B4H;执行一条POP指令,“0F79H”被弹出栈,SP从00B4H指向00B2H;图略;3.设有关寄存器及存储单元的内容如下:DS=2000H, BX=0100H, AX=1200H, SI=0002H, 20100H=12H, 20101H=34H, 20102H=56H, 20103H=78H, 21200H=2AH, 21201H=4CH, 21202H=0B7H, 21203H=65H.试说明下列各条指令单独执行后相关寄存器或存储单元的内容;(1)MOV AX, 1800H 2 MOV AX, BX3 MOV BX, 1200H4 MOV DX, 1100BX5 MOV BXSI, AL6 MOV AX, 1100BXSI答:1 AX=1800H 2 AX=0100H 3 BX=4C2AH4 DX=4C2AH5 20102H=00H6 AX=65B7H4. 写出实现下列计算的指令序列;1 Z=W+X+Z2 Z=W-X+6-R+9答:1 MOV AX, ZADD AX, XADD AX, WMOV Z, AX2 MOV AX, WADD X, 6SUB AX, XADD R, 9SUB AX, RMOV Z, AX5. 若在数据段中从字节变量TABLE相应的单元开始存放了0~15的平方值,试写出包含XLAT指令的指令序列查找N0~15中的某个平方数;答:LEA BX, TABLEMOV AL, CLXLAT6. 写出实现下列计算的指令序列;1 Z=WX/R+62 Z=W-X/5Y2答:1 MOV AX, WIMUL XADD R, 6IDIV RMOV Z, AX2 MOV AX, WSUB AX, XMOV BL, 5IDIV BLCBWIMUL YMOV BX, 2IMUL BXMOV Z, AX7. 假定DX=1100100110111001B,CL=3,CF=1, 试确定下列各条指令单独执行后DX的值;1 SHR DX, 12 SHL DL, 13 SAL DH, 14 SAR DX, CL5 ROR DX, CL6 ROL DL, CL7 RCR DL, 18 RCL DX, CL答:1 DX=0110 0100 1101 1100B 2 DX=1100 1001 0111 0010B3 DX=1001 0010 1011 1001B4 DX= 1111 1001 0011 0111B5 DX= 0011 1001 0011 0111B 6DX= 0100 1101 1100 1110B7 DX= 1110 0100 1101 1100B 8 DX= 1001 0011 0111 0011B8. 已知程序段如下:MOV AX, 1234HMOV CL, 4ROL AX, CLDEC AXMOV CX, 4MUL CXINT 20H试问:1每条指令执行后,AX寄存器的内容是什么2每条指令执行后,CF,SF 及ZF的值分别是什么3程序运行结束后,AX及DX寄存器的值为多少答:MOV AX, 1234H AX=1234H, CF=0,SF=0,ZF=0MOV CL, 4ROL AX,CL AX=2341H,CF=1,SF=0,ZF=0DEC AX AX=2340H,CF=1,SF=0,ZF=0MOV CX,4MULL CX AX=8D00H, CF=0,SF=1,ZF=0INT 20H结束后,DX=0000H, AX=8000H9.试分析下列程序段:ADD AX, BXJNC L2SUB AX, BXJNC L3JMP SHORTL5如果AX,BX的内容给定如下:AX BX1 14C6H 80DCH2 B568H 54B7H问该程序在上述情况下执行后,程序转向何处;答:1转到L2处2转到L3处习题41.下列语句在存储器中分别为变量分配多少字节空间并画出存储空间的分配图;V AR1 DB 10,2V AR2 DW 5 DUP ,0V AR3 DB ‘HOW ARE YOU ’,3 DUP1,2V AR4 DD -1,1,0答:字节空间:V AR1:2;V AR2:12;V AR3:13;V AR4:8;存储空间的分配图:2.假定V AR1 和V AR2 为字变量,LAB 为标号,试指出下列指令的错误之处; 1ADD V AR1,V AR2 2SUB AL,V AR13JMP LABCX 4JNZ V AR15 MOV 1000H,100 6SHL AL, 4答:1 在算术运算指令中,两个操作数不能同时为存储器寻址方式2 AL 为字节,V AR1 为字变量,字长不相等;3 错误1:寄存器相对寻址方式,只能使用基址或变址寄存器,不能使用CX寄存器;错误2:汇编格式错误,无法判段是段内转移还是段间转移;4 转向地址应为标号,不能是变量;5 目的操作数的类型不确定;6 SHL 指令中,当所移位数超过1 时,必须用CL取代所移位数;3.对于下面的符号定义,指出下列指令的错误;A1 DBA2 DB 10K1 EQU 10241 MOV K1,AX 2MOV A1,AX3CMP A1,A2 4K1 EQU 2048答:1K1 为常量,不能用MOV 指令赋值;2A1 为字节,AX 为字变量,类型不一致;3A1 和A2同为存储器寻址方式,不符合语法规则;4K1 重新赋值前,必须用PURGE 释放;4.数据定义语句如下所示:FIRST DB 90H,5FH,6EH,69HSECOND DB 5 DUPTHIRD DB 5 DUPFORTH DB 4 DUP自FIRST 单元开始存放的是一个四字节的十六进制数低位字节在前,要求:编一段程序将这个数左移两位后存放到自SECOND 开始的单元,右移两位后存放到自THIRD 开始的单元,求补后放到FORTH开始的单元;注意保留移出部分答:DA TA SEGMENTFIRST DB 90H,5FH,6EH,69HSECOND DB 5 DUPTHIRD DB 5 DUPFORTH DB 4 DUPDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA SI,FIRSTLEA DI,SECONDMOV CX,2CLC;左移2 位MOV AX,WORD PTR SI ;AX=5F90H 为低十六位数据INC SIINC SIMOV DX,WORD PTR SI ;DX=696EH 为高十六位数据PUSH DX ;保存原有的高十六位数据PUSH AX ;保存原有的低十六位数据ROL DX,CL;将高位数据不带进位循环左移两位,即高2 位数据在DL 的低2 位AND DL,03H ;让DL 中仅保存移出的高2 位数据MOV DI+4 ,DL;将移出的高2 位数据放入SECOND 中的最高单元中ROL AX,CL;将低位数据不带进位循环左移两位,即AX 的高2 位在AL 的低2 位AND AL,03H;让AL 中仅保存移出的AX 高2 位数据MOV BL ,AL;将AL 中的数据放入BL 中保存POP AX;弹出原有的低十六位数据POP DX;弹出原有的高十六位数据SHL DX,CL;将高位数据算术逻辑左移2 位SHL AX,CL;将低位数据算术逻辑左移2 位OR DL,BL;将AX 中移出的高2 位数据放入DX 的低2 位MOV WORD PTR DI ,AXMOV WORD PTR DI+2 ,DX;右移2 位LEA DI,THIRDMOV CX,2CLCMOV AX,WORD PTR SI ;AX=5F90H 为低十六位数据INC SIINC SIMOV DX,WORD PTR SI ;DX=696EH 为高十六位数据PUSH DX;保存原有的高十六位数据PUSH AX;保存原有的低十六位数据ROR AX,CL;将低位数据不带进位循环右移两位,即低2 位数据在AH 的高2 位AND AH,0C0H;让AH 中仅保存移出的低2 位数据PUSH CXMOV CX,6SHR AH,CLPOP CXMOV DI ,AH ;将移出的低2 位数据放入THIRD 中的最低单元中ROR DX, CL;将低位数据不带进位循环左移两位,即AX 的高2 位在AL 的低2 位AND DH,0C0H ;让DH 中仅保存移出的DX 低2 位数据MOV BL ,DH ;将DH 中的数据放入BL 中保存POP AX ;弹出原有的低十六位数据POP DX ;弹出原有的高十六位数据SHR DX,CL ;将高位数据算术逻辑左移2 位SHR AX,CL ;将低位数据算术逻辑左移2 位OR AH,BL ;将DX 中移出的低2 位数据放入AX 的高2 位MOV WORD PTR DI+1 , AXMOV WORD PTR DI+3 ,DX;求补LEA DI,FORTHMOV AX,WORD PTR SI ;AX=5F90H 为低十六位数据INC SIINC SIMOV DX,WORD PTR SI ;DX=696EH 为高十六位数据XOR AX, 0FFFFH ;将低十六位取反XOR DX, OFFFFH ;将高十六位按位取反CLCADD AX,01H ;低位加1,即可为原数的求补ADC DX,0 ;高位加低位加法时的进位MOV WORD PTR DI , AXMOV WORD PTR DI+2 ,DXMOV AH,4CHINT 21HCODE ENDSEND START5.试编程序将内存从40000H到4BFFFH的每个单元中均写入55H,并再逐个单元读出比较,看写入的与读出的是否一致;若全对,则将AL置7EH; 只要有错,则将AL置81H;答:DATA SEGMENTDA1 DB 55HCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,4000HMOV DS,AXMOV CX,0C000HMOV BX,0000HMOV AH,55HNEXT1: MOV byte ptrBX,AHINC BXLOOP NEXT1MOV BX,0000HMOV CX,0C000HMOV AL,81HNEXT2: MOV AH, BXCMP AH,55HJNZ EXITINC BXLOOP NEXT2MOV AL,7EHEXIT: MOV AH,4CHINT 21HCODE ENDSEND START6.在当前数据段4000H开始的128个单元中存放一组数据,试编程序将它们顺序搬移到A000H开始的顺序128个单元中,并将两个数据块逐个单元进行比较; 若有错将BL置00H; 全对则将BL置FFH,试编程序;答:DATA SEGMENTORG 400HDA1 DB 128 DUPORG 0A00HDA2 DB 128 DUPDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,DA1LEA DI,DA2MOV CX,128AGAIN: MOV AL,SIINC SIINC DILOOP AGAINLEA SI, DA1LEA DI, DA2MOV CX,128NEXT: MOV AL,SIMOV BL,DICMP AL,BLJNZ ERRORINC SIINC DIMOV BL,0FFHLOOP NEXTJMP EXITERROR: MOV BL,00HEXIT: MOV AH,4CHINT 21HCODE ENDSEND START7. 设变量单元A、B、C存放有3个数,若3个数都不为零,则求3个数的和,存放在D中; 若有一个为零,则将其余两个也清零,试编写程序;答:DATA SEGMENTA DBB DBC DBDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCMP A,00HJNZ LP1MOV B,0MOV C,0JMP LP4LP1: CMP B,00HJNZ LP2MOV A,0MOV C,0JMP LP4LP2: CMP C,00HJNZ LP3MOV A,0MOV B,0JMP LP4LP3: MOV AL,AADD AL,BADD AL,CMOV AH,4CHLP4: INT 21HCODE ENDSEND START8. 有一个100个字节的数据表,表内元素已按从大到小的顺序排列好,现给定一元素,试编程序在表内查找,若表内已有此元素,则结束; 否则,按顺序将此元素插入表中适当的位置,并修改表长;答:DATA SEGMENTBUFF DB 100 DUPDA1 DBLENGTH DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,0MOV AL,DA1MOV CX,100FIND0: CMP BUFFSI,ALJZ EXITINC SILOOP FIND0MOV DI,99MOV SI,0COMPARE: CMP BUFFDI,ALJG INSERTMOV BL,BUFFDIMOV BUFFDI+1,BLDEC DICMP DI,SIJNL COMPAREJMP EXITINSERT: MOV BUFFDI+1,ALMOV LENGTH , 101 EXIT: MOV AH,4CHINT 21HCODE ENDSEND START9. 内存中以FIRST和SECOND开始的单元中分别存放着两个16位组合的十进制BCD码数,低位在前;编程序求这两个数的组合的十进制和,并存到以THIRD 开始的单元;答:DATA SEGMENTFIRST DD 34341212HSECOND DD 78785656HTHIRD DB , , ,DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,FIRSTLEA DI,SECONDLEA BX,THIRDMOV CX,4CLCAGAIN: MOV AL,BYTE PTRSIMOV DL,BYTE PTRDIADC AL,DLDAAMOV BYTE PTRBX,ALINC SIINC DIINC BXLOOP AGAINJC AAMOV BYTE PTRBX,0JMP EXITAA: MOV BYTE PTRBX,1EXIT: MOV AH,4CHINT 21HCODE ENDSEND START10. 编写一段程序,接收从键盘输入的10个数,输入回车符表示结束,然后将这些数加密后存于BUFF缓冲区中;加密表如下:输入数字: 0,1,2,3,4,5,6,7,8,9; 密码数字: 7,5,9,1,3,6,8,0,2,4;答:DATA SEGMENTMITAB DB '7591368024'CONT EQU $-MITABBUFF DB 10 DUP ,'$'YUANWEN DB 10 DUP ,'$'DATA ENDSCODE SEGMENTASSUME CS∶CODE,DS∶DATASTART:MOV AX,DATAMOV DS,AXMOV SI,0MOV CX,CONTINPUT: MOV AH,1INT 21HCMP AL,13JZ EXITAND AL,0FHMOV YUANWENSI ,ALINC SILOOP INPUTEXIT : LEA BX,MITABMOV CX,SIMOV SI,0JIAMI: MOV AL,YUANWENSIXLAT MITABMOV BUFFSI,ALINC SILOOP JIAMIMOV AH, 4CHINT 21HCODE ENDSEND START11.试编程序,统计由40000H开始的16K个单元中所存放的字符“A”的个数,并将结果存放在DX中;答:DATA SEGMENTDA1 DB 'A'BUFF DB 4000H DUPDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,4000HMOV DS,AXMOV BX,0MOV CX,4000HFIND: MOV AL,BXMOV BL,DA1CMP AL,BLJNZ NEXTNEXT: INC SILOOP FINDMOV AH,4CHINT 21HCODE ENDSEND START12. 在当前数据段DS,偏移地址为DATAB开始的顺序80个单元中,存放着某班80个同学某门考试成绩;按如下要求编写程序:1 编写程序统计≥90分; 80分~89分; 70分~79分; 60分~69分,<60分的人数各为多少,并将结果放在同一数据段、偏移地址为BTRX开始的顺序单元中;2 试编程序,求该班这门课的平均成绩为多少,并放在该数据段的A VER单元中; 答:DATA SEGMENTBUFF DW 80 DUPDA9 DB 0DA8 DB 0DA7 DB 0DA6 DB 0DA5 DB 0A VER DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV CX,80COMPARE: MOV BX,0CMP BUFFBX,90JB LP8JMP NEXTLP8: CMP BUFFBX,80JB LP7INC DA8JMP NEXTLP7: CMP BUFFBX,70JB LP6INC DA7JMP NEXTLP6: CMP BUFFBX,60JB LP5INC DA6JMP NEXTLP5: INC DA5JMP NEXT NEXT: INC BXLOOP COMPAREMOV CX,80XOR AX,AXMOV BX,00 SUM: ADD AX,BUFFBXINC BXLOOP LP1MOV CL,80DIV CLMOV A VER , ALMOV AH,4CHINT 21HCODE ENDSEND START13. 编写一个子程序,对AL中的数据进行偶校验,并将经过校验的结果放回AL 中;答:JIOU PROCPUSH CXPUSH BXXOR AH, AHPUSH AXMOV CL, 7LOOP1: SAR AL, 1ADC AH, 0LOOP LOOP1MOV AL, AHXOR AH, AHMOV BL, 2DIV BLMOV BL, AHPOP AXROR BL, 1OR AL, BLPOP BXPOP CXRETJIOU ENDP14. 利用上题的子程序,对80000H开始的256个单元的数据加上偶校验,试编程序;CODE SEGMENTASSUME CS: CODESTART : MOV AX, 8000HMOV DS, AXMOV SI, 0MOV CX, 256 LP: MOV AL, SICALL JIOUMOV SI, ALINC SILOOP LPMOV AH, 4CHINT 21HJIOU PROCPUSH CXPUSH BXXOR AH, AHPUSH AXMOV CL, 7 LOOP1: SAR AL, 1ADC AH, 0LOOP LOOP1MOV AL, AHXOR AH, AHMOV BL, 2DIV BLMOV BL, AHPOP AXROR BL, 1OR AL, BLPOP BXPOP CXRETJIOU ENDPCODE ENDSEND START习题51.试述DRAM的工作特点;与SRAM相比有什么长处和不足之处;说明它的使用场合;答:DRAM,动态随机存取存储器,需要不断的刷新,才能保存数据; 而且是行列地址复用的,许多都有页模式; SRAM,静态的随机存取存储器,加电情况下,不需要刷新,数据不会丢失,而且一般不是行列地址复用的;与SRAM相比,DRAM价格便宜、速度慢、容量大,主要用来做主存储器,存储程序和数据;而SRAM主要用在Cache等对速度要求高的情况;2.试述DRAM刷新过程和正常读/写过程的区别;答:刷新是以行为单位进行,且刷新过程中不能进行读写操作;3.设有一个具有20位地址和32位字长的存储器,问:(1)该存储器能存储多少个字节的信息(2)如果存储器由512K8位SRAM芯片组成,需要多少片(3)需要多少位作芯片选择答:1该存储器能存储4MB的信息;2 需要8片512K8位的芯片;3 需要1位做芯片选择;4.对于8K×8位RAM组成的存储器系统,若某组的起始地址为08000H,则其末地址为多少答:末地址为9FFF.5.在8088最大方式系统总线上扩充设计4K字节的SRAM存储器电路;SRAM芯片选用Intel 2114,起始地址从0000H;试画出此存储器电路与系统总线的连接图;答:系统容量为4K8bit,芯片容量为1K4bit,所以一共需要8片芯片连接图如下:6.在8088系统总线上扩充设计8K的字节的SRAM存储器电路;SRAM芯片选用Intel 6264,起始地址从04000H开始,译码器电路74LS138.(1)计算此RAM存储区的最高地址是多少;(2)画出此存储器电路与系统总线的连接图;答:1最高地址是05FFFH;27.在8086最小方式系统总线上扩充设计16K字节的SRAM存储器电路,SRAM芯片选用Intel 6264,起始地址从04000H开始,译码器电路采用74LS138. (1)计算此RAM存储区域的最高地址是多少(2)画出此存储器与总线的连接图;答:1 07FFFH2习题61.什么是接口接口的功能是什么答:位于主机与外设之间,用来协助完成数据传送和控制任务的逻辑电路称为接口电路,接口电路对输入/输出过程起缓冲和联络作用;接口的功能是有,数据缓冲功能,联络功能,寻址功能,预处理功能,中断管理功能;2.计算机对I/O端口编址时通常采用哪两种方法在8086系统中,用哪种方法进行编址答:I/O端口和存储器统一编址;I/O端口单独编址;8086系统采用I/O端口单独编址方式;3.CPU和输入/输出设备之间传送的信息有哪几类答: 数据信息,控制信息,与状态信息;4.简述CPU与外设进行数据交换的几种常用方式.答: 程序控制方式: 特点是依靠程序的控制来实现主机和外设的数据传送,可分为无条件传送方式和查询方式.中断控制方式: 每次输入和输出一个数据,CPU都要检查外设的状态;直接存储器存取控制方式:cpu不参加数据传送,而是由DMA控制器来实现内存与外设,外设与外设之间的直接传递;通道方式:可以实现对外围设备的统一管理和外围设备与内存之间的数据传送;外围处理机方式:由PPU独立于主机工作,减少了CPU控制外设的负担;5.无条件传送方式适用哪些场合查询方式原理怎样主要用在什么场合答:无条件传送适用于简单的输入/输出设备,CPU可以随时读取或接受状态;这些信号变化缓慢,当需要采集数据时,无需检查端口,就可以立即采集数据,直接用输入/输出指令完成;无条件传送方式主要用于控制CPU与低俗I/O接口之间的信息交换;6.现有一输入设备,其数据端口的地址为FFE0H,并于端口FFE2H提供状态,当其D0位为1时表明输入数据准备好;请编写采用查询方式进行数据传送的程序段,要求从该设备读取100B并输入到1000H:2000H开始的内存中;MOV DX, 0FFE2HL1:IN AL, DX 这是习题6的第6题的答案, TEST AL, 01H 这个程序写不出来,建议删这一问JZ L1MOV AX, 1000HMOV DS, AXMOV DX, 2000HMOV CX, 100MOV DX, 0FFE0HL2: IN AL, DXMOV DX, ALINC BXLOOPN L27.查询式传送方式有什么优缺点中断方式为什么能弥补查询方式的缺点答:查询传送方式CPU通过程序不断查询相应设备的状态,状态不符合要求,则CPU需要等待;只有当状态信号符合要求时,CPU才能进行相应的操作;中断方式提高了计算机系统中信息处理的并行和处理器效率,中断可以实现同步操作,实时处理等功能;8.8088/8086中断向量表的作用是什么答:中断向量表建立了不同的中断源与其相应的中断服务程序首地址之间的联系,它是CPU在响应中断时可以依据中断类型码自动转向中断服务程序;9.什么叫中断向量它放在哪里对于1CH的中断向量在哪里如果1CH的中断程序从5110H开始:2030H开始,则中断向量应该怎样存放答:中断向量即用来提供中断入口地址的一个指针;10.8259中IRR, IMR, ISR三个寄存器的作用是什么答:⑴中断请求寄存器IRR8259A有8条外部中断请求输入信号线IR0-IR7,每一条请求线上有一个相应的触发器来保存请求信号,它们形成了中断请求寄存器IRRInterrupt Request Register;⑵中断屏蔽寄存器IMRIMRInterrupt Mask Register用来存放屏蔽位信息,IMR的每一位可以禁止IRR 中对应位的中断请求输入信号进入;⑶中断服务寄存器ISRISRInterrupt Service Register存放当前正在进行服务的所有中断;ISR中相应位的置位是在中断响应的INTA脉冲期间,由优先权判决电路根据IRR中各请求位的优先权级别和IMR中屏蔽位的状态,将中断的最高优先级请求位选通到ISR中;11.类型号为20H的中断服务程序入口符号地址为INT-5,试写出中断向量的装入程序片段;答:MOV AX, 0MOV DS, AXMOV SF, 20H4LEA AX, IMSMOV IS, AXMOV AX, SEQ, INTSMOV SI+2, AX12.简述DMA控制器同一般接口芯片的区别;答:DMA控制器能给出访问内存所需要的地址信息,并能自动修改地址指针,也能设定和修改传送的字节数,还能向存储器和外设发出相应的读/写控制信号;在DMA传送结束后,它能释放总线,把对总线的控制权又交还给CPU;用DMA方式传输数据时,不需要进行保护和恢复断点及现场之类的额外操作;13.简述8237A3种基本传送类型的特点;答:单次传送方式:每次DMA操作只传送1B,然后就自动把总线控制权交给CPU,若还有通道请求信号,则DMAC则再重新向CPU发出总线请求,获得控。

16/32位微机原理、汇编语言及接口技术(钱晓捷)[第2版]课后答案

16/32位微机原理、汇编语言及接口技术(钱晓捷)[第2版]课后答案

第一章1.1 解:五代,详细见书1.2 解:微型计算机:以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件——控制器和运算器的微处理器为核心,所构造出的计算机系统。

PC机:PC(Personal Computer)机就是面向个人单独使用的一类微机。

单片机:用于控制的微处理器芯片,内部除CPU外还集成了计算机的其他一些主要部件,如:ROM、RAM、定时器、并行接口、串行接口,有的芯片还集成了A/D、D/A转换电路等。

数字信号处理器DSP:主要面向大流量数字信号的实时处理,在宿主系统中充当数据处理中心,在网络通信、多媒体应用等领域正得到越来越多的应用1.3 解:微机主要有存储器、I/O设备和I/O接口、CPU、系统总线、操作系统和应用软件组成,各部分功能如下:CPU:统一协调和控制系统中的各个部件系统总线:传送信息存储器:存放程序和数据I/O设备:实现微机的输入输出功能I/O接口:I/O设备与CPU的桥梁操作系统:管理系统所有的软硬件资源1.4 解:系统总线:传递信息的一组公用导线,CPU通过它们与存储器和I/O设备进行信息交换。

好处:组态灵活、扩展方便三组信号线:数据总线、地址总线和控制总线。

其使用特点是:在某一时刻,只能由一个总线主控设备来控制系统总线,只能有一个发送者向总线发送信号;但可以有多个设备从总线上同时获得信号。

1.5解:(1)用于数值计算、数据处理及信息管理方向。

采用通用微机,要求有较快的工作速度、较高的运算精度、较大的内存容量和较完备的输入输出设备,为用户提供方便友好的操作界面和简便快捷的维护、扩充手段。

(2)用于过程控制及嵌人应用方向。

采用控制类微机,要求能抵抗各种干扰、适应现场的恶劣环境、确保长时间稳定地工作,要求其实时性要好、强调其体积要小、便携式应用强调其省电。

1.6 解:1.7 解:I/O通道:位于CPU和设备控制器之间,其目的是承担一些原来由CPU处理的I/O任务,从而把CPU从繁杂的I/O任务中解脱出来。

微机原理、汇编与接口技术经典ppt

微机原理、汇编与接口技术经典ppt
CPU 寄存器 CPU内高速 缓存Cache
CPU外高速缓存 内存(主存) 联机辅存 脱机辅存
20
5.2 常用的存储器芯片
由半导体电路构成 从正常使用时的功能: 只读存储器 读写存储器 从芯片结构以及存储信息方式 静态存储器 动态存储器
21
5.2.1 微型计算机内存的结构
计算机的内存一般是半导体存储器。
33
(4) 存取速度
一般用访问时间来衡量。 访问时间——存储器收到稳定的地址信号到完成读/写操作所需 要的时间。 例如 读:存储器收到地址信号,读控制信号后,存储器往数据总线 输出稳定的数据信号所需要的时间; 写:存储器收到地址信号、数据信号、写控制信号后,完成将 数据写入芯片内部存储单元所需要的时间。 双极性(TTL工艺)存储器的速度高,但集成度低,价格高, 功耗大 MOS工艺的存储器功耗低、集成度高(容量大),价格低,但 速度低 (与TTL型比较)
3
对存储器系统的要求 高速 大容量 低价格 内存——RAM,ROM速度较快,但容量小,价格高 RAM——掉电丢失 ROM——掉电不丢失
磁盘等——容量大,价格低,但速度低 掉电不丢失
4
5.1.1 存储器的类型
从不同的角度出发,存储器有不同的分类方式。 1. 从工作时与CPU联系的密切程度分类 主存储器和辅助存储器 或叫做内存和外存 主存(内存)直接和CPU交换信息,按存储单元进行读写数据, CPU的地址信号对其进行寻址 辅存(外存)作为主存的辅助存储设备是计算机的外部设备, 存放暂时不执行的程序和数据。 主存一般使用半导体存储器,速度高,容量较小,单位容量的 价格高 辅存可以使用磁盘、磁带、光盘、……,容量大,速度慢,单 位容量的价格低。
28
32行×32列组成的矩阵和外部的连接 :

微机原理、汇编语言与接口技术 第七章 习题答案 人民邮电出版社(周杰英 张萍 郭雪梅 著)

微机原理、汇编语言与接口技术 第七章 习题答案 人民邮电出版社(周杰英 张萍 郭雪梅 著)

第7章输入/输出接口习题与参考答案这一章的习题与参考答案分为两大部分,一部分是输入输出概述及DMA控制器的习题与参考答案;另一部分是中断及中断控制器部分的习题与参考答案。

一、输入输出概述及DMA控制器的习题与参考答案1、请说明为什么输入接口的数据缓冲寄存器必须有三态输出功能而输出接口却不需要的原因。

解:输入接口的数据缓冲寄存器的输出端是直接接在数据总线上的,如果数据寄存器没有三态输出功能,则无论数据寄存器被寻址选中或未被选中,其数据都会被送上数据总线,若此时总线上真正要传送的数据与该输入缓存器的内容不一致时,就会发生总线冲突。

所以,输入接口的数据缓冲器必须有三态输出功能,以便当接口未被寻址选中时,其输出端处于高阻态,从而与总线隔离。

对于输出接口来说,是输入端与数据总线相连,而输出端是与外设相连,因此其输出不影响总线状态;另外,一个外设一般只与一个输出数据缓存器相连,因此输出接口的数据缓存器无须有三态输出功能。

2、8086/8088CPU中哪些寄存器可以用于I/O寻址?若I/O端口地址分别是10H和100H,分别写出向这两个端口写入73H的程序段。

解:8086/8088CPU内可以用于I/O寻址的寄存器为AL、AX和DX。

向端口10H写入73H的程序段为:MOV AL,73HOUT 10H,AL向端口10H写入73H的程序段为:MOV AL,73HMOV DX,100HOUT DX,AL3、图为7段显示器接口,显示器采用共阳极接法,试编写程序段,使AL中的一位十六进制数显示于显示器上。

输出锁存器地址为40H。

解:TABLE DB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,67H,77H,7CH,DB 39H,5EH,79H,71HLEA BX,TABLEXLA TOUT 40H,AL4、PC/XT机有哪些输入输出方式?各自的特点如何?DMA控制器应具备哪些功能?解:无条件方式:需要外设处于就绪状态,硬件简单;查询方式:CPU需要不断地查询外设是否就绪,浪费CPU时间,硬件较简单;中断方式:外设准备好后,向CPU发中断请求,请求CPU完成数据传输,外设与CPU 并行;硬件又比前两者复杂。

16 32位微机原理汇编语言及接口技术(第二版)第三章课后习题

16 32位微机原理汇编语言及接口技术(第二版)第三章课后习题

16 32位微机原理、汇编语言及接口技术(第二版)第三章课后习题>第3章3.1:汇编语言有什么特点解:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2编写汇编语言源程序时,一般的组成原则是什么?解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段 3.3 MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪7种存储模式?各用于创建什么性质的程序?解:存储模式 TINY SMALL COMPACT MEDIUM LARGE HUGE FLAT 特点 COM类型程序,只有一个小于64KB的逻辑段(MASM 6.x支持)小应用程序,只有一个代码段和一个数据段(含堆栈段),每段不大于64KB 代码少、数据多的程序,只有一个代码段,但有多个数据段代码多、数据少的程序,可有多个代码段,只有一个数据段大应用程序,可有多个代码段和多个数据段(静态数据小于64KB)更大应用程序,可有多个代码段和多个数据段(对静态数据没有限制) 32位应用程序,运行在32位80x86CPU和Windows 9x或NT环境 3.4如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?解:开始位置:用标号指明返回DOS:利用DOS功能调用的4CH子功能来实现汇编停止:执行到一条END伪指令时,停止汇编3.5逻辑段具有哪些属性?解:段定位、段组合和段类型。

3.6给出采用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序?? 解: stack segment stack db 1024(0) stack endsdata segmentstring db 'Hello,Assembly!',0dH,0aH,‘$’ data endscode segment 'code'assume cs:code,ds:data,ss:stack start: mov dx,offset string mov ah,9 int 21h code endsend start3.7DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?解:(1). EXE程序程序可以有多个代码段和多个数据段,程序长度可以超过64KB 通常生成EXE结构的可执行程序 (2). COM程序只有一个逻辑段,程序长度不超过64KB需要满足一定条件才能生成COM结构的可执行程序(MASM 6.x需要采用TINY模式)3.8举例说明等价“EUQ”伪指令和等号“=”伪指令的用途解:符号定义伪指令有“等价EQU”和“等号=”:符号名 EQU 数值表达式符号名EQU 符号名=数值表达式EQU用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。

第2章-微机原理、汇编与接口技术(第3版)-朱定华-清华大学出版社

第2章-微机原理、汇编与接口技术(第3版)-朱定华-清华大学出版社
6
2.1.2 标号
标号→指令地址的符号表示
1、 标号的三个属性 (1)段基址—定义该标号所在段的段首址的高16位 (2)偏移地址—标号所在段的段首址到该标号定义指令的
字节距离 (3)类型—NEAR和FAR两种 NEAR—段内调用,FAR—段间调用
7
2.1.2 标号
2 、标号的定义 标号只在代码段中定义和使用,定义的方式有两种: (1)书写在符号指令前,用:定义,为NEAR类型, NEAR型标号只能在段内使用! 例: CYCLE:MOV AL,[SI] ;定义近标号CYCLE
4
2.1.1 常量
(2)符号常量 程序中为经常使用的数值取的名。 用EQU或“=”伪指令定义,如:
P EQU 314 P=314
注:汇编时,汇编程序不给符号常量分配存储单元
5
2.1.1 常量
2、数值表达式 数字表达式——由常量与运算符组成的有意义的 式子,结果为一数值。
在汇编语言源程序中,允许对常量进行以下三种类型 的运算: (1)算术运算 包括+,-,×,/,MOD(求余) (2)逻辑运算 包括AND,OR,XOR,NOT (3)关系运算 包括:EQ(=),NE(≠),LT (<),GT(>),LE(≤),GE(≥)
;基址来初始化其变量
(5)由以上表达DB 1,2,3
B6 DB ’1,2,3’
; 此行的“,”不是序列分隔符
14
例 画出数据的存储形式
W1 DW B2 ;用B2的偏移地址初始化W1变量 B1 DB AB$ ;变量B1用A、B、$的ASCII码初始化 W2 DW 1994H D DD EW ;用变量EW的段基址和偏移地址初始化D B2 DB 2 DUP(-5,-1)
微机原理、汇编与接口技术
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章绪论习题与参考答案(部分)1.2.把下列二进制数转换成十进制数、十六进制数及BCD码形式。

(1)10110010B =(2)01011101.101B =解:(1) 10110010B = 178D = B2H = (0001 0111 1000)BCD (2) 01011101.101B = 93.625D = 5D.AH= (1001 0011.0110 0010 0101)BCD3.把下列十进制数转换成二进制数。

(1)100D =(2)1000D =(3)67.21D =解:(1)100D = 01100100B(2) 1000D = 1111101000B(3) 67.21D = 1000011.0011B4.5.把下列十六进制数转换成十进制数、二进制数。

(1)2B5H =(2)4CD.A5H =解:(1)2B5H = 693D = 0010 1011 0101B(2)4CD.A5H = 1229.6445D = 0100 1100 1101.1010 0101 B6.计算下列各式。

(1)A7H+B8H =(2)E4H-A6H =解:(1) A7H+B8H = 15FH(2) E4H-A6H = 3EH7.写出下列十进制数的原码、反码和补码。

(1) +89(2) -37解:(1) [+89 ] 原码、反码和补码为: 01011001B(2) [-37] 原码 = 10100101 B[-37] 反码 = 11011010 B[-37] 补码 = 11011011 B6.求下列用二进制补码表示的十进制数(1)(01001101)补 =(2)(10110101)补 =解:(1)(01001101)补 = 77D(2)(10110101)补 = -75D7.请用8位二进制数写出下列字符带奇校验的ASCII码。

(1)C: 1000011 (2)O: 1001111(3)M: 1001101 (4)P: 1010000解:(1)C:0 1000011 (2)O: 0 1001111(3)M:1 1001101 (4)P: 1 10100008.请用8位二进制数写出下列字符带偶校验的ASCII码。

(1)+:0101011 (2)=: 0111101(3)#:0100011 (4)>: 0111110解:(1)+:0 0101011 (2)=: 1 0111101(3)#:1 0100011 (4)>: 1 01111109.叙述CPU 中PC的作用。

解:PC是CPU中的程序计数器,其作用是提供要执行指令的地址。

第2章微处理器的结构习题与参考答案1.8086/8088 CPU 由哪两大部分组成?请分别叙述它们的功能。

解:8086/8088 CPU均由两个独立的逻辑单元组成,一个称为总线接口单元BIU(Bus Interface Unit),另一个称为执行单元EU(Execution Unit)。

总线接口单元BIU取指令时,从存储器指定地址取出指令送入指令队列排队;执行指令时,根据EU命令对指定存储器单元或I/O 端口存取数据。

执行单元EU任务是执行指令,进行全部算术逻辑运算、完全偏移地址的计算,向总线接口单元BIU提供指令执行结果的数据和偏移地址,并对通用寄存器和标志寄存器进行管理。

2.8086/8088与传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?解:总线接口部分和执行部分是分开的,每当EU执行一条指令时,造成指令队列空出2个或空出一个指令字节时,BIU马上从内存中取出下面一条或几条指令,以添满他的指令队列。

这样,一般情况下,CPU在执行完一条指令后,便可马上执行下一条指令,不像以往8位CPU那样,执行完一条指令后,需等待下一条指令。

即EU从指令队列中取指令、执行指令和BIU补充指令队列的工作是同时进行的。

这样大大提高了CPU利用率,降低了系统都对存储器速度的要求。

3.状态标志和控制标志有何不同?8086/8088的状态标志和控制标志分别有哪些?解:8086/8088 CPU设立了一个两字节的标志寄存器,共九个标志。

其中标志位O、S、Z、A、P、C是反映前一次涉及ALU操作结果的状态标志,D、I、T是控制CPU操作特征的控制标志。

4.8086/8088 CPU寻址存储器时,什么是物理地址?逻辑地址?它们之间有何关系?解:8086/8088系统中每个存储单元都有一个物理地址,物理地址就是存储单元的实际地址编码。

在CPU与存贮器之间进行任何信息交换时,需利用物理地址来查找所需要的访问的存储单元。

逻辑地址由段地址和偏移地址两部分组成。

逻辑地址的表示格式为:段地址:偏移地址。

知道了逻辑地址,可以求出它对应的物理地址:物理地址=段地址×10H+偏移地址。

5.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?解:根据:物理地址=段地址×10H+偏移地址,指令的物理地址为21F00H。

指向这一物理地址的CS值和IP值不唯一。

6.8086 CPU中BHE信号和A0信号是通过怎样的组合解决存储器和外设端口的读/写的?这种组合决定了8086系统中存储器偶地址体及奇地址体之间应该用什么信号区分?怎样区分?解:若存取一个字节的数据,总是用一个总线周期来完成该操作;若存取一个字,则依该字是规则字还是不规则字需用一个或两个总线周期来完成。

对规则字,只用一个总线周期来完成16位数据的传送,而对于非规则字则用相邻两个总线周期来完成该字的存储操作,先取其奇地址字节(即数据的低位字节),然后存取偶地址字节。

在组成存储系统时,总是偶地址单元的数据通过AD0~AD7传送,而奇地址单元的数据通过AD8~AD15传送,即通过总线高字节传送。

BHE信号和A0信号控制存储器读写见下表:第3章 80x86指令系统习题与参考答案1、指出下列指令中操作数的寻址方式(8086系统)。

(1) MOV AX ,100 (2) MOV AX ,[100](3) MOV DL ,[BP+SI] (4) MOV [BX],CX(5) MOV DX ,[SI] (6) MOV 1234H[BX],DS(7) MOV [DI+5678H],AL (8)MOV 12[BP][DI],BH(9) POP CX (10)MOV AX ,[BX+SI+10] 解:2、指出下列指令中操作数的寻址方式(80386系统)。

(1) MOV [EBX+12H],AX (2)MOV [EBP+EDI*2],EBX(3) MOV [EBX*4],BX (4) MOV EDX,[EAX+ESI*8-12H]解:3、指出以下指令中,哪些指令是非法的,并说明为什么(8086系统)。

(1) PUSH 1234H (2) MOV CS,AX(3) IN AX, 300 (4) MOV AX,[DX+12](5) MOV BX,[BX] (6) MOV DS,1000H(7) XCHG AL,AL (8) MOV AL,100H (9) MOV DX,AL (10)LEA BL,[BX+5](11)LEA DX,BX (12)MOV [1000H],12H (13)ADD AX,DS (14)SUB [0100H],BYTE PTR [0001](15)SHL BL,2 (16)SHR CL,CL(17)MUL AL,BL (18)INT 400解:(1)非法,8086系统不允许PUSH指令的操作数为立即数;(2)非法,MOV指令中CS不能作为目的操作数;(3)非法,端口号大于0FFH;(4)非法,DX不能出现在中括号[]内;(5)合法;(6)非法,不能把立即数赋给段寄存器;(7)合法;(8)非法,源操作数大于0FFH,不能赋给8位寄存器AL;(9)非法,源操作数是8位寄存器,目的操作数却是16位寄存器,不匹配;(10)非法,LEA指令得到的是16位偏移量,但目的操作数是8位寄存器;(11)非法,LEA指令的源操作数只能是存储器操作数;(12)非法,指令存在歧义,无法确定传送的是字节还是字;(13)非法,段寄存器不能参与算术运算;(14)非法,源和目的寄存器不能同为存储器操作数;(15)非法,在8086系统中,移位次数大于1时需要将移位次数存放到CL中;(16)合法;(17)非法,在8086系统中MUL指令没有双操作数的用法;(18)非法,中断类型号大于0FFH。

4、指出以下指令中,哪些指令是非法的,并说明为什么(80386系统)。

(1) MOV AX,12[EBX][SI*16] (2) RCR EAX,10 (3) PUSH 5678H (4) POP 1000H(5) MOV [EAX+EAX],EAX (6) MOV AL,[ESP+ESP*2](7) MOV BL,[AX+12] (8) IMUL AL,BL,12解:(1)非法,比例因子只能是1、2、4、8,不能是16;(2)合法;(3)合法;(4)非法,POP指令的目的操作数不能是立即数;(5)合法;(6)非法,ESP只能作为基址寄存器,不能作为变址寄存器;(7)非法,在386系统中AX不能作为基址寄存器,也不能作为变址寄存器;(8)合法。

5、假设(AX)=1234H,(BX)=5678H,(SP)=1000H,指出执行下面的程序段后,各相关寄存器及堆栈段中的内容。

PUSH AX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第二字节[SP+1]=?PUSH BX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第二字节[SP+1]=?POP AX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第二字节[SP+1]=?解:(AX)=1234H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H(AX)=1234H,(BX)=5678H,(SP)=0FFCH,栈顶字节[SP]=78H,栈顶第二字节[SP+1]=56H(AX)=5678H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H6、假设A、B、C、D、X、Y为字节变量,AA、BB、YY为字变量,试利用算术运算指令编写程序段,完成以下各算术运算题。

(1)计算YY←A+B*C,其中A、B、C都是无符号数;(2)计算(AA+BB)/(C-D),商赋给X,余数赋给Y,其中AA、BB、C、D都是带符号数;(3)计算YY←(A-B)*C,其中A、B、C都是未组合BCD码。

相关文档
最新文档