微机原理(8086指令系统)

8086指令系统一览表 类型 汇编指令格式 功 能 操作数说明 时钟周期数 字节数 数 据 传 送 类

MOV dst, src (dst) ← (src) mem, reg reg, mem reg, reg reg, imm mem, imm seg, reg seg, mem mem, seg reg, seg mem, acc acc, mem 9+EA 8+EA 2 4 10+EA 2 8+EA 9+EA 2 10 10 2 ~ 4 2 ~ 4 2 2 ~ 3 3 ~ 6 2 2 ~ 4 2 ~ 4 2 3 3 PUSH src (SP) ← (SP)-2 ((SP)+1, (SP)) ← (src) reg seg mem 11 10 16+EA 1 1 2 ~ 4 POP dst (dst) ← ((SP)+1, (SP)) (SP) ← (SP)+2 reg seg mem 8 8 17+EA 1 1 2 ~ 4 XCHG op1, op2 (op1) ←→ (op1) reg, mem reg, reg reg, acc 17+EA 4 3 2 ~ 4 2 1 IN acc, port IN acc, DX (acc) ← (port) (acc) ← ((DX)) 10 8 2 1 OUT port, acc OUT DX, acc (port) ← (acc) ((DX)) ← (acc) 10 8 2 1 XLAT 11 1 LEA reg, src (reg) ← src reg, mem 2+EA 2 ~ 4 LDS reg, src (reg) ← src (DS) ← (src+2) reg, mem 16+EA 2 ~ 4

LES reg, src (reg) ← src (ES) ← (src+2) reg, mem 16+EA 2 ~ 4 LAHF (AH) ← (FR低字节) 4 1 SAHF (FR低字节) ← (AH) 4 1 PUSHF (SP) ← (SP)-2 ((SP)+1, (SP)) ← (FR低字节) 10 1

POPF (FR低字节) ← ((SP)+1, (SP)) (SP) ← (SP)+2 8 1 算 术 运 算 类

ADD dst, src (dst) ← (src) + (dst) mem, reg reg, mem reg, reg reg, imm mem, imm acc, imm 16+EA 9+EA 3 4 17+EA 4 2 ~ 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3 ADC dst, src (dst) ← (src) + (dst) + CF mem, reg reg, mem reg, reg reg, imm mem, imm acc, imm 16+EA 9+EA 3 4 17+EA 4 2 ~ 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3 INC op1 (op1) ← (op1)+1 reg mem 2 ~ 3 15+EA 1 ~ 2 2 ~ 4 SUB dst, src (dst) ← (src) - (dst) mem, reg reg, mem reg, reg reg, imm mem, imm acc, imm 16+EA 9+EA 3 4 17+EA 4 2 ~ 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3 SBB dst, src (dst) ← (src) - (dst) - CF mem, reg reg, mem reg, reg reg, imm mem, imm acc, imm 16+EA 9+EA 3 4 17+EA 4 2 ~ 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3 DEC op1 (op1) ← (op1) - 1 reg mem 2 ~ 3 15+EA 1 ~ 2 2 ~ 4 NEG op1 (op1) ← 0 - (op1) reg mem 3 16+EA 2 2 ~ 4 CMP op1, op2 (op1) - (op2) mem, reg reg, mem reg, reg reg, imm mem, imm acc, imm 9+EA 9+EA 3 4 10+EA 4 2 ~ 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3 MUL src (AX) ← (AL) * (src) (DX, AX) ← (AX) * (src) 8位reg 8位mem 16位reg 16位mem 70 ~ 77 (76 ~ 83)+EA 118 ~ 133 (124 ~ 139)+EA 2 2 ~ 4 2 2 ~ 4 IMUL src (AX) ← (AL) * (src) (DX, AX) ← (AX) * (src) 8位reg 8位mem 16位reg 16位mem 80 ~ 98 (86 ~ 104)+EA 128 ~ 154 (134 ~ 160)+EA 2 2 ~ 4 2 2 ~ 4 DIV src (AL) ← (AX) / (src) 的商 (AH) ← (AX) / (src) 的余数 (AX) ← (DX, AX) / (src) 的商 (DX) ← (DX, AX) / (src) 的余数 8位reg 8位mem 16位reg 16位mem 80 ~ 90 (86 ~ 96)+EA 144 ~ 162 (150 ~ 168)+EA 2 2 ~ 4 2 2 ~ 4 IDIV src (AL) ← (AX) / (src) 的商 (AH) ← (AX) / (src) 的余数 (AX) ← (DX, AX) / (src) 的商 (DX) ← (DX, AX) / (src) 的余数 8位reg 8位mem 16位reg 16位mem 101 ~ 112 (107 ~ 118)+EA 165 ~ 184 (171 ~ 190)+EA 2 2 ~ 4 2 2 ~ 4 DAA (AL) ← AL中的和调整为组合BCD 4 1 DAS (AL) ← AL中的差调整为组合BCD 4 1 AAA (AL) ← AL中的和调整为非组合BCD (AH) ← (AH)+调整产生的进位值 4 1

AAS (AL) ← AL中的差调整为非组合BCD (AH) ← (AH)-调整产生的进位值 4 1 AAM (AX) ← AX中的积调整为非组合BCD 83 2 AAD (AL) ← (AH) * 10 + (AL) (AH) ← 0 (注意是除法进行前调整被除数) 60 2

逻 辑 运 算 类

AND dst, src (dst) ← (dst) ∧ (src) mem, reg reg, mem reg, reg reg, imm mem, imm acc, imm 16+EA 9+EA 3 4 17+EA 4 2 ~ 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3 OR dst, src (dst) ← (dst) ∨ (src) mem, reg reg, mem reg, reg reg, imm mem, imm acc, imm 16+EA 9+EA 3 4 17+EA 4 2 ~ 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3 NOT op1 (op1) ← (1op) reg mem 3 16+EA 2 2 ~ 4 XOR dst, src (dst) ← (dst) ⊕ (src) mem, reg reg, mem reg, reg reg, imm mem, imm acc, imm 16+EA 9+EA 3 4 17+EA 4 2 ~ 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3 TEST op1, op2 (op1) ∧ (op2) reg, mem reg, reg reg, imm mem, imm acc, imm 9+EA 3 5 11+EA 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3 SHL op1, 1 SHL op1, CL 逻辑左移 reg mem reg mem 2 15+EA 8 + 4/bit 20+EA+ 4/bit 2 2 ~ 4 2 2 ~ 4 SAL op1, 1 SAL op1, CL 算术右移 reg mem reg mem 2 15+EA 8 + 4/bit 20+EA+ 4/bit 2 2 ~ 4 2 2 ~ 4 SHR op1, 1 SHR op1, CL 逻辑右移 reg mem reg mem 2 15+EA 8 + 4/bit 20+EA+ 4/bit 2 2 ~ 4 2 2 ~ 4 SAR op1, 1 SAR op1, CL 算术右移 reg mem reg mem 2 15+EA 8 + 4/bit 20+EA+ 4/bit 2 2 ~ 4 2 2 ~ 4 ROL op1, 1 ROL op1, CL 循环左移 reg mem reg mem 2 15+EA 8 + 4/bit 20+EA+ 4/bit 2 2 ~ 4 2 2 ~ 4 ROR op1, 1 ROR op1, CL 循环右移 reg mem reg mem 2 15+EA 8 + 4/bit 20+EA+ 4/bit 2 2 ~ 4 2 2 ~ 4 RCL op1, 1 RCL op1, CL 带进位位的循环左移 reg mem reg mem 2 15+EA 8 + 4/bit 20+EA+ 4/bit 2 2 ~ 4 2 2 ~ 4 RCR op1, 1 RCR op1, CL 带进位位的循环右移 reg mem reg mem 2 15+EA 8 + 4/bit 20+EA+ 4/bit 2 2 ~ 4 2 2 ~ 4 串 操 作 类

MOVSB MOVSW ((DI)) ← ((SI)) (SI) ← (SI)±1, (DI) ← (DI)±1 ((DI)) ← ((SI)) (SI) ← (SI)±2, (DI) ← (DI)±2 不重复:18 重复:9+17/rep 不重复:18 重复:9+17/rep 1 1 STOSB STOSW ((DI)) ← (AL) (DI) ← (DI)±1 ((DI)) ← (AX) (DI) ← (DI)±2 不重复:11 重复:9+10/rep 不重复:11 重复:9+10/rep 1 1 LODSB LODSW (AL) ← ((SI)) (SI) ← (SI)±1 (AX) ← ((SI)) (SI) ← (SI)±2 不重复:12 重复:9+13/rep 不重复:12 重复:9+13/rep 1 1

合集下载

微机原理及应用(陈继红、徐晨)课后习题答案

微机原理及应用(陈继红、徐晨)课后习题答案

微机原理及应⽤(陈继红、徐晨)课后习题答案微机原理及应⽤(陈继红、徐晨)课后习题答案第三章8086/8088指令系统和寻址⽅式习题答案(部分)3.1总结计算机中⼗进制、⼆进制、⼋进制及⼗六进制数的书写形式。

123D、0AFH、77Q、1001110B分别表⽰什么计数制的数?答案:123D、0AFH、77Q、1001110B分别表⽰⼗进制、⼗六进制、⼋进制、⼆进制。

3.2字长为8位、16位⼆进制数的原码、补码表⽰的最⼤数和最⼩数分别是什么?答案:8位原码表⽰的最⼤数:(27-1)、8位补码表⽰的最⼤数:(27-1)、8位原码表⽰的最⼩数:-(27-1)、8位补码表⽰的最⼩数-27。

16最⼩数:-215。

3.3答案:7DH。

(2)255(3)7248H。

(4)509013E2H。

3.4答案:240D0F0H。

128D80H。

(3)11111111⼗进制数:255D;⼗六进制数:0FFH。

(4)01010101⼗进制数:85D;⼗六进制数:55H。

3.5把下列⽆符号⼗六进制数分别转换为⼗进制数和⼆进制数。

(1)FF(2)ABCD(3)123(4)FFFF答案:(1)FF⼗进制数:255D;⼆进制数;11111111B。

1010101111001101B。

(3)123⼗进制数:291D;⼆进制数;000100100011B。

(4)FFFF⼗进制数:65535D;⼆进制数;1111111111111111B。

3.6分别⽤8位⼆进制数和16位⼆进制数写出下列⼗进制数的原码和补码。

(1)16(2)-16(3)+0(4)-0(5)127(6)-128(7)121(8)-9 答案:(1)16800010000(2)-16800010000(3)+0800000000(4)-0800000000(5)127801111111(6)-128810000000(7)1218:01111001;16位⼆进制数原码:0000000001111001补码:0000000001111001。

8086微处理器

8086微处理器

西北师范大学计算机科学与技术系版权声明本电子教案内容为西北师范大学计算机科学系微机原理与汇编语言课讲义,大家可以自己个人使用。

但由于本教案同时也部分使用了其他人所写讲义或CAI课件的内容,因此禁止使用本材料进行任何商业性或赢利性活动。

同时作者不承担由于使用本教案而引发的其他连带责任。

转载时请保留本版权声明。

-索国瑞suogr@8086微处理器❑概要❑功能结构❑基本执行环境❑基本编程寄存器❑存储器组织❑I/O端口组织概要❑8086微处理器由Intel公司于1978年推出的16位微处理器,随后被IBM公司用于新开发的IBM PC微型计算机上,由此奠定其MPU霸主地位❑8086采用HMOS工艺制造,约含29000个晶体管❑8086有16根数据线和20根地址线,可寻址1MB 内存空间❑8086工作时只要单一的5V电源和单相时钟,时钟频率为5MHz。

❑8086CPU已经发展成为一个系列,其早期的系列成员以16位微处理器8086和准16位微处理器8088为基础,加上各种支持芯片,以及一些提升系统功能的协处理器(如8087、8089)等组成。

❑从8086开始,Intel 先后推出了80286、80386、80486、Pentium、Pentium MMX、Pentium PRO、PII、PIII、PIV微处理器,形成了80X86系列,其基本设计结构被称为IA-32结构❑新的IA-64结构也正在推出,目前已经投入实际运行的有安腾-itenium系列CPU,并且开始出现具有双内核的CPU❑INTEL公司80X86架构系列CPU发展简图 4004:1971年,4位,2300晶体管/片,640B存储器8080:1974年,8位,6000晶体管/片,64KB存储器8086:1978年,16位,29000晶体管/片,1M存储器,奠定了最基本的X86汇编指令集 80286:1982年,16位,134000晶体管,16MB存储器80386:1985年,32位,32位总线,275000晶体管,4GB存储器,速度5 MIPS,IA-3280486:1989年,32位,1.2M晶体管,片内数学协处理器Pentium:1993年,32位数据路径,64位总线,3.1M晶体管,2路超标量流水线,深度5,速度90 MIPS,4GB存储器Pentium Pro:1995年,64位数据路径,64位总线,5.5M晶体管,3路超标量流水线,深度12,速度300MIPS,架构属P6,64GB存储器Pentium II:1997年,32位,7.5M晶体管,加MMX指令,开始出现XEON、K6芯片Pentium III:1999年,64位1Gbps系统总线,9.5M系统晶体管,SSE指令,超标量流水线处理机,深度10Pentium IV:2000年,64位32Gbps系统总线,42M晶体管,SSE2指令,超标量处理机,深度至少为20,以上为IA-32结构Itanium :2001年,IA-64结构,10级深度流水线16TB存储器,开始在服务器领域应用 Itanium II:……在推出Intel 8086的同时,Intel公司还推出了Intel 8088。

微机原理(杭州电子科技大学【4】8086系统结构[2-3]

微机原理(杭州电子科技大学【4】8086系统结构[2-3]

15:28
22
二、系统的复位与启动
【8086CPU时序】
① 复位信号:通过RESET引脚上的触发信号来引起8086系统复位和启
动,RESET至少维持4个时钟周期的高电平。
② 复位操作:当RESET信号变成高电平时,8086/8088CPU结束现行
操作,各个内部寄存器复位成初值。
标志寄存器
清零
指令寄存器 CS寄存器 DS寄存器 SS寄存器 ES寄存器
的比例倍频后得到CPU的主频,即: CPU主频 = 外频 × 倍频系数
⑥ PC机各子系统时钟(存储系统,显示系统,总线等)是由系统频率按 照一定的比例分频得到。
15:28
5
内频 550MHz Pentium III
倍频系数5.5
L1 Cache
L2 550MHz Cache
处理机总线 100MHz
微机原理与接口技术
第四讲
15:28
第二章 8086系统结构
内容提要
z微型计算机的发展概况 z8086CPU内部结构 z8086CPU引脚及功能 z8086CPU存储器组织 z8086CPU系统配置 z8086CPU时序
15:28
2
※有关概念介绍
z 主频,外频,倍频系数 z T状态 z 总线周期 z 指令周期 z 时序 z 时序图
总线操作
读存储器操作 (取操作数)
写存储器操作 (将结果存放到内存)
读 I/O 端口操作 (取 I/O 端口中的数)
写 I/O 端口操作 (往 I/O 端口写数)
中断响应操作
总线周期
存储器读周期 存储器写周期 I/O 端口读周期 I/O 端口写周期 中断响应周期
15:28

[微机原理课件].ch5-2

[微机原理课件].ch5-2

② 可以利用循环,
但每循环一次要修改地址(源地址和目的地址),
必须把地址放在寄存器当中,用寄存器间接寻址来寻找 操作数.
20
得到如下程序: … MOV SI,OFFSET AREA1 MOV DI,OFFSET AREA2
MOV CX,100
AGAIN : MOV AL,[SI] MOV [DI],AL INC INC SI DI ;修改地址指针 ;修改地址指针 ;修改个数
6、MOV DS,1234H
IP不能作为目的操作数
不能用立即数对段寄存器赋值
22
2. PUSH (Push word onto stack)
POP (Pop word off stack)
这是两条堆栈操作指令。
(1) 先回忆一下什么是堆栈,为什么需要堆栈 堆栈——按照先进后出原则组织的一段内存区 域 特点: • 下推式的(规定堆栈设置在堆栈段内)改变SP的 内容,随着推入堆栈内容增加,SP的值减少。
① 调用子程序:将下条指令地址即IP值保留下来
(8088中码段寄存器CS和指令指针IP),
才能保证子程序执行完后准确返回主程序继续执行。
②执行子程序时,通常用到内部寄存器,执行结果会 影响标志位,必须在调用子程序之前将现状保护起来 ③ 子程序嵌套或子程序递归(自调自) 保留许多信息,而且保证正确返回(且后进先出)。 后保留先取出原则(即LIFO-LAST In First out)。 注意:SP——堆栈指针,始终指向栈顶。 SP初值用MOV SP,i m来设定。
下列指令源操作数和目的操作数的寻址方 式分别是什么?
(1) MOV DX,100H (2) MOV BX,[0100H] (3) MOV CX,DATA[SI] (4) MOV ES:[SI],AX (5) ADD AX,[BX][DI] (6) AND AX,BX (7) XOR AX,[BX] (8) MOV AL,DATA [BP][DI]

微机原理 第5章5.2.4串操作类指令

微机原理 第5章5.2.4串操作类指令

第5章
2、REPZ重复前缀指令
REPZ
;每执行一次串指令,CX减1 每执行一次串指令,CX减 并判断ZF是否为0 ZF是否为 ;并判断ZF是否为0, 只要CX CX= ZF= 重复执行结束 ;只要CX=0或ZF=0,重复执行结束
【例5.42】比较S1、S2两个数据串是否相同,不同则 】 比较 、 两个数据串是否相同, 两个数据串是否相同 例5.42:比较字符串 : 跳到NOMATCH执行。 执行。 跳到 执行 S1 DB 0,1,1,0,0 S2 DB 0,1,1,1,0 …… CLD LEA SI,S1 ;源串偏移地址赋值给 源串偏移地址赋值给SI 源串偏移地址赋值给 LEA DI,ES:S2 ;目的串偏移地址赋值给 目的串偏移地址赋值给SI 目的串偏移地址赋值给 MOV CX,5 ;源串和目的串的数据个数 源串和目的串的数据个数 AGAIN: CMPSB ;源串与目的串相减,标志位 源串与目的串相减, 源串与目的串相减 JNE NOMATCH ;有任一不同,跳到NOMATCH 有任一不同,跳到 有任一不同 DEC CX ;数据串没比较完,继续比较 数据串没比较完, JNZ AGAIN 数据串没比较完 NOMATCH:
第5章
四、串比较CMPS
将主存中的源操作数减去目的操作数, 将主存中的源操作数减去目的操作数,以便设 置标志(影响AF,ZF,PF,SF,OF,CF) , 进而比 置标志 ( 影响 ) 较两操作数之间的关系 CMPSB ;字节串比较:DS:[SI]-ES:[DI] 字节串比较:DS:[SI]- SI←SI± DI←DI± ;SI←SI±1,DI←DI±1 CMPSW ;字串比较:DS:[SI]-ES:[DI] 字串比较:DS:[SI]- SI←SI± DI←DI± ;SI←SI±2,DI←DI±2

《微机原理》8086与PC(2-2)

《微机原理》8086与PC(2-2)
特殊屏蔽方式:在高级中断服务程序执行过程中,允
许临时开放对低优先级中断源的服务
8259A的工作方式(续)
中断结束方式
中断自动结束方式:ISR中在响应时自动置1的位在进
入中断服务程序后自动清0
一般中断结束方式:在全嵌套方式下,EOI命令中不
指定结束的中断级,约定结束ISR中的最高优先级中 断,对应位将被复位
中断向量表的构成
中断向量表:把所有中断源的中断向量集中在
一起,形成中断向量表
8086在内存中地址为00000H~003FFH的 存储区内建立中断向量表,共存放256个中断向 量,每个向量占4个字节,IP在低地址单元、 CS在高地址单元
此表的查询索引为中断类型号
中断类型号及其获取
中断类型号:系统分配给每个中断源的代
为I/O设备服务
中断服务程序执行 中断返回(IRET)
断点和FLAGS从 堆栈中弹出(断点恢复)
恢复现场
给中断控制器发中 断结束(EOI)命令
回到中断前运行 的程序继续执行
中断传送流程
返回
8259A芯片
可编程中断控制器8259A主要功能为:
(1)对8个外部中断源进行管理,具有8级优 先权控制,通过级连可扩展至64级优先权控制。
五、8253/8254定时/计数器
主要功能
3个独立的16位计数器 每个计数器可以按二进制或BCD码计数 计数速率可达2MHz(8254-2达10MHz) 每个计数器有6种工作方式,可编程设置和改
变 输入输出引脚与TTL电平兼容
8253内部结构图
计数器结构
8253有三个独立的计数器(计数通道)
计数初值寄存器(16位)
先读写最低有效字节再
读写最高有效字节

微机原理课件第二章 8086系统结构


但指令周期不一定都大于总线周期,如MOV AX,BX
操作都在CPU内部的寄存器,只要内部总线即可完成,不 需要通过系统总线访问存储器和I/O接口。
2021/8/17
17
• 8086CPU的典型总线时序,充分体现了总 线是严格地按分时复用的原则进行工作的。 即:在一个总线周期内,首先利用总线传 送地址信息,然后再利用同一总线传送数 据信息。这样减少了CPU芯片的引脚和外 部总线的数目。
• 执行部件(EU)
• 功能:负责译码和执行指令。
2021/8/17
5
• 联系BIU和EU的纽带为流水指令队列
• 队列是一种数据结构,工作方式为先进先出。写入的指令 只能存放在队列尾,读出的指令是队列头存放的指令。
2021/8/17
6
•BIU和EU的动作协调原则 BIU和EU按以下流水线技术原则协调工作,共同完成所 要求的任务: ①每当8086的指令队列中有空字节,BIU就会自动把下 一条指令取到指令队列中。 ②每当EU准备执行一条指令时,它会从BIU部件的指令 队列前部取出指令的代码,然后译码、执行指令。在执 行指令的过程中,如果必须访问存储器或者I/O端口, 那么EU就会请求BIU,完成访问内存或者I/O端口的操 作; ③当指令队列已满,且EU又没有总线访问请求时,BIU 便进入空闲状态。(BIU等待,总线空操作) ④开机或重启时,指令队列被清空;或在执行转移指令、 调用指令和返回指令时,由于待执行指令的顺序发生了 变化,则指令队列中已经装入的字节被自动消除,BIU会 接着往指令队列装入转向的另一程序段中的指令代码。 (EU等待)
•CF(Carry Flag)—进位标志位,做加法时最高位出现进位或 做减法时最高位出现借位,该位置1,反之为0。

微机原理与接口技术习题答案

第3章8086/8088指令系统与寻址方式习题3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。

(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H(3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H(4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。

(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV [BX],[1000] ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元(8)MOV CS,[1000] ;CS不能作为目标寄存器(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址(10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址(11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH(2FEFEH)=57H(2FEFFH)=34H3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。

微机原理与接口技术(楼顺天编着)课后习题答案

第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’, ’word’, ’WORD’;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。

解:var1 DW 4512H,4512,-1,100/3,10H,65530var2 DB ’BYTE’,’word’,’WORD’buf1 DB 100 DUP(?)buf2 DB 7 DUP(5 DUP(55H),10 DUP(240))var3 DB LENGTH buf1pointer DW var1,buf1 (或者pointer DW OFFSET var1,OFFSET buf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1 DB 12,-12,20/6,4 DUP(0,55H)var2 DB ‘Assemble’var3 DW ‘AB’, ‘cd’, ‘E’var4 DW var2var5 DD var2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1, VAR2为字变量, L1为标号):(1)MOV SI,100 (2)MOV BX,VAR1[SI](3)MOV AX, [BX] (4)MOV AL, [DX](5)MOV BP, AL (6)MOV VAR1, VAR2(7)MOV CS, AX (8)MOV DS, 0100H(9)MOV [BX][SI], 1 (10)MOV AX, VAR1+VAR2(11)ADD AX, LENGTH VAR1 (12)OR BL, TYPE VAR2(13)SUB [DI], 78H (14)MOVS VAR1, VAR2(15)PUSH 100H (16)POP CS(17)XCHG AX, ES (18)MOV DS, CS(19)JMP L1+5 (20)DIV AX, 10(21)SHL BL, 2 (22)MOV AL, 15+23(23)MUL CX (24)XCHG CL, [SI](25)ADC CS:[0100], AH (26)SBB VAR1-5,154解:(1)MOV SI,100 正确。

微机原理第3章 8086微型计算机系统

第3章 8086微型计算机系统
2、总线接口部件BIU
BIU组成: 4个16位段寄存器(DS、CS、ES、SS); 指令指针寄存器(IP); 20位的地址加法器; 6字节指令队列缓冲器; 内部暂存器和总线控制逻辑。 BIU功能:负责CPU与存储器、I/O设备之间的 数据传送。具体包括: 取指令送指令队列,配合EU从指定的内存 单元或者外设端口中取数据,将数据传送 给EU,或者把EU的操作结果传送到指定的 内存单元或外设端口中。第3章 8086微型计算机系统
第3章 8086微型计算机系统
4、内存操作
读:将内存单元的内容取入CPU,原单元内容不改变; 写:CPU将信息放入内存单元,单元中原内容被覆盖; 刷新:对CPU透明,仅动态存储器有此操作 内存的读写的步骤为: 1)CPU把要读写的内存单元的地址放到AB上 2) 若是写操作, CPU紧接着把要写入的数据放到DB上 3) CPU发出读写命令 4) 数据被写入指定的单元或从指定的单元读出到DB 若是读操作, CPU紧接着从DB上取回数据
第3章 8086微型计算机系统
3、8086的存储器的地址
内存包含有很多存储单元(每个内存单元包含 8bit),为区分不同的内存单元,对计算机中 的每个内存单元进行编号,内存单元的编号 就称为内存单元的地址。
内存单 元地址
. . .
Bit 7 6 5 4 3 2 1 0 01011000
内存单 元内容
段基地址(16位)
第3章 8086微型计算机系统

段地址说明逻辑段在主存中的起始位置 8086规定段地址必须是模16地址:xxxx0H 省略低4位0000B,段地址就可以用16位数据 表示,就能用16位段寄存器表达段地址 偏移地址(也称有效地址EA)说明主存单元 距离段起始位置的偏移量 每段不超过64KB,偏移地址也可用16位数据 表示
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档