汇编语言及接口技术复习以及习题解答
- 格式:pdf
- 大小:851.58 KB
- 文档页数:13
答: (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h
(5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h
7
5、已知 SS=FFA0H,SP=00B0H,画图说明执行下列指令序列时,堆栈区和 SP 的内 容如何变化?
MOV PUSH MOV PUSH POP POP AX,8057H AX AX.0F79H AX BX [BX]
4
Байду номын сангаас
PA=(段首址×16)+偏移地址 状态标志寄存器 FLAGS 8086CPU 的状态标志寄存器 FLAGS 是一个 16 位的寄存器,其中 9 个位作为 标志位(状态标志位 6 个,控制标志位 3 个)其余 7 位未定义,其位结构如 下
状态标志有 6 个,即 SF、ZF、PF、CF、AF 和 OF ① 符号标志 SF(sign flag ) ② 零标志 ZF(zero flag) ③ 奇偶标志 PF(parity flag) ④ 进位标志 CF(carry flag) ⑤ 辅助进位标志 AF(auxiliary carry flag) ⑥ 溢出标志 OF(overflow flag)
5
来传送地址 (2) 第 28 号引脚在 8086 中是 M / IO ,在 8088 中改为 IO /M ,定义 相反。 (3) 第 34 号引脚在 8086 中是 BHE ,在 8088 中改为 SS0 。 习题解答 第二章 1、8086/8088CPU 的地址总线有多少位?其寻址范围是多少?
3
4 个通用寄存器,即 AX、BX、CX、DX 4 个专用寄存器,即 基数指针寄存器 BP(base pointer) 堆栈指针寄存器 SP(stack pointer) 源变址寄存器 SI(source index) 目的变址寄存器 DI(destination index) D. 暂存寄存器 E. EU 控制单元 2) 总线接口部件(BIU) BIU 是与总线打交道的接口部件,他根据 EU 的请求,执行 8086CPU 对存储 器或 I/O 接口的总线操作,完成数据的传送。BIU 组成: A. 指令队列缓冲器 B. 16 位的指令指针寄存器 C. 地址产生器和段寄存器 由于 IP 和通用寄存器都只有 16 位,其编址范围只能达 到 64KB,只是 8086 访问空间 1MB 范围的一段,因此, 必须设置产生 20 位实际地址 PA(即物理地址)的地址 产生器机构 段寄存器是用来存放每种段的首地址的。8086 有 4 个段 寄存器,即(1)代码段 CS 寄存器(2)数据段 DS 寄存 器(3)堆栈段 SS 寄存器(4)附加段 ES 寄存器 PA 的计算公式
控制标志有 3 个,即 ① 方向标志 DF(direction flag) ② 中断允许标志 IF(interrupt enable flag) ③ 跟踪标志 TF(trap flag)又称为单步标志
8086 和 8088 的区别(P25) 8086: (1)AD15 ~AD0:分时复用的地址数据线,传送地址时三态输出,传送 数据时双向三态输入输出。 (2)A19/S6~A16/S3:分时复用的地址状态线 8088: (1)8088 的外部数据总线 8 条,分时复用 AD7~AD0, A15~A8 专门用
6
6、试求出下列运算后的各个状态标志位,并且说明进位标志位和溢出标志的区 别。
1278H+3469H 54E3H-27A0H 3881H+3597H 01E3H-01E3H 答:CF=0,AF=1,ZF=0,SF=0,OF=0,PF=1 答:CF=0,AF=0,ZF=0,SF=0,OF=0,PF=0
2
(1)数据信息:包括数字量、模拟量、开关量等,可以输入、也可以 输出。 (2)状态信息:这是 I/O 端口送给 CPU 的有关本端口所对应的外设当 前状态的信息。供 CPU 进行分析、判断和决策等。 (3)控制信息:这是 CPU 送给 I/O 端口的控制命令,使相应的外部设 备完成特定的操作。 地址总线为 n 位,则可寻址的空间为 2nB。 (P16) 第二章 8086 是 Intel 系列的 16 位微处理器,他是采用 HMOS 工艺技术制造的。8086 有 16 根数据线和 20 根地址线,所以可寻址的空间达 1MB。Intel 公司还推出 准 16 位微处理器 8088,8088 的内部寄存器、内部运算部件以及内部操作都 是按 16 位设计的,但是对外的数据只有 8 条。 (P19) 8086CPU 内部有两个独立的工作部件,即执行部件(EU)和总线接口部件 (BIU) (P20-P22) 1) 执行部件(EU) : EU 的功能是负责执行命令,而不与外部总线打交道。EU 执行的指令从 BIU 的指令队列缓冲器取得,执行指令所得到的结果或执行指令所得数据 由 EU 向 BIU 发出请求,由 BIU 向存储器或外部设备进行存取.执行部件 EU 的主要功能部件包括 A. 算术逻辑运算器 AL B. 状态标识寄存器 FLAGS C. 通用寄存器组
第一章 计算机第一代采用电子管,第二代采用晶体管,第三代采用中小规模集成电路, 第四代采用大规模集成电路和超大规模集成电路(P1) 计算机通常按体积、性能和价格分为巨型机、大型机、中型机、小型机和微 型机五类。 微型机的核心部分是微处理器和微处理机,是由一片或几片大规模集成电路 组成,具有运算器和控制器功能的中央处理机(CPU) 。 以处理器为核心,配上由大规模集成电路制作的储存器、输入/输出接口电 路及系统总线所组成的计算机,简称微型计算机。以微型计算机为中心,配 以相应的外围设备、电源和辅助电路,以及指挥计算机工作的系统软件,就 构成了微型计算机系统。 (P2) 处理器: (P3) 第三代处理器(1978-1984) ,是 16 位微处理器 80286(16 位):从 80286 开始有了工作模式之分(实模式和保护模式) 当工作在实模式时:保持与 8086 兼容,且工作速度更快,16 位微处理器广泛 应用于数据处理和管理系统 第四代处理器(1985-1992),是 32 位处理器 80386(32 位):采用 CHMOS 工艺和 132 条引脚的网络阵列式封装(集成 度达 27.5 万个晶体管/片),指令执行速度提高到 10MIPS。其工作方式 除 80286 的实模式和保护模式外,还增加了虚拟 8086 模式 一般计算机的结构框架图(P5)
答:8086/8088 地址总线有 20 根,可寻址 1MB 空间,范围:00000H~0FFFFFH.
2、8086/8088CPU 分为哪两个部分?各部分主要由什么组成?
答: 8086CPU 内部有两个独立的工作部件, 即执行部件 (EU) 和总线接口部件 (BIU) 执行部件(EU)包括(1)算术逻辑运算器 AL(2)状态标识寄存器 FLAGS(3)通用寄 存器组(4)暂存寄存器(5)EU 控制单元 总线接口部件 (BIU) 包括(1)指令队列缓冲器(2)16 位的指令指针寄存器(3)地址产 生器和段寄存器
答:w= x+y+24-z
8
9、设 X,Y,Z,V 均为 16 位带符号数,分别装在 X,Y,Z,V 存储单元中,阅读以下程 序段,得出它的运算公式,并说明运算结果存于何处。
MOV AX,X IMUL Y MOV CX,AX MOV BX,DX MOV AX,Z CWD ADD CX,AX ADC BX,DX SUB CX,540 SBB BX,0 MOV AX,V CWD SUB AX,CX SBB DX,BX IDIV X 答:mov ax,X ;ax=X imul Y ;DX.AX=X*Y mov cx,ax ;cx=X*Y 的低 16 位 mox bx,dx ;bx=X*Y 的高 16 位 mov ax,Z ;ax=Z cwd add cx,ax ;cx=Z 的低 16 位+X*Y 的低 16 位 adc bx,dx ;bx=Z 的高 16 位+X*Y 的高 16 位+低位进位 sub cx,540 ;cx=Z 的低 16 位+X*Y 的低 16 位-540 sbb bx,0 ;bx=Z 的高 16 位+X*Y 的高 16 位+低位进位-低位借位 mov ax,V ;ax=V cwd sub ax,cx ;ax=V 的低 16 位-(Z 的低 16 位+X*Y 的低 16 位-540) sbb dx,bx ;dx=V 的高 16 位-(Z 的高 16 位+X*Y 的高 16 位+低位 进位-低位借位)-低位借位 idiv X ;/X 〔解答〕 [V-(X*Y+Z-540)]/X AX 存商,DX 存余数
7、设 x,y,z 均为双字节数据,分别存放在地址为 X,X+2;Y,Y+2;Z,Z+2 的存储单元中,他们的 运算结果存入 W 单元,阅读如下程序段,给出运算公式。 MOV AX,X ; MOV DX,X+2 ; ADD AX,Y ;低十六位相加 ADC DX,Y+2 ;高十六位相加 x=x+y;ADC::带进位加法指令 ADD AX,24 ; ADC DX,0 ; x=x+y+24 SUB AX,Z ; 低十六位相减 SBB DX,Z+2 ; 高十六位相减 x=x+y +24-z SUB::带借位减法指令 MOV W,AX ; MOV W+2,DX ;w=xw=x+y+24-z
5、8086/8088CPU 中有哪些标志位?她们的含义和作用如何?
答 :(1) 6 个状态标志位的功能分别叙述如下: CF(Carry Flag)——进位标志位。当执行一个加法(或减法)运算,使最高位产 生进位(或借位)时,CF 为 1;否则为 0。 PF(Parity Flag)——奇偶标志位。该标志位反映运算结果中 1 的个数是偶数 还是奇数。当指令执行结果的低 8 位中含有偶数个 1 时,PF=1;否则 PF=0。 AF(Auxiliary carry Flag)——辅助进位标志位。当执行一个加法(或减法)运 算,使结果的低 4 位向高 4 位有进位(或借位)时,AF=1;否则 AF=0。 ZF(Zero Flag)——零标志位。若当前的运算结果为零,ZF=1;否则 ZF=0。 SF(Sign Flag)——符号标志位。它和运算结果的最高位相同。 OF(Overflow Flag)——溢出标志位。 当补码运算有溢出时, OF=1; 否则 OF=0。 (2) 3 个控制标志位用来控制 CPU 的操作,由指令进行置位和复位。 DF(Direction Flag)——方向标志位。它用以指定字符串处理时的方向,当该位置 “1”时,字符串以递减顺序处理,即地址以从高到低顺序递减。反之,则以递增顺序 处理。 IF(Interrupt enable Flag)——中断允许标志位。 它用来控制 8086 是否允许接收 外部中断请求。若 IF=1,8086 能响应外部中断,反之则不响应外部中断。 注意:IF 的状态不影响非屏蔽中断请求(NMI)和 CPU 内部中断请求。 TF(Trap Flag)——跟踪标志位。它是为调试程序而设定的陷阱控制位。当该位置 “1”时,8086 CPU 处于单步状态,此时 CPU 每执行完一条指令就自动产生一次内 部中断。当该位复位后,CPU 恢复正常工作。