汇编语言程序设计教程第4版课件第2章

合集下载

汇编语言程序设计教程(第4版)课件全套 卜艳萍

汇编语言程序设计教程(第4版)课件全套  卜艳萍

2018/9/26
汇编语言程序设计教程
5
汇编语言程序的建立及汇编过程
2018/9/26
汇程
(1)编辑 • 为了将源程序送入计算机并建立一个源程序名为*.ASM的 源文件,我们可以使用任何流行的字处理程序或能编辑 ASCII码文字符号的编辑程序。 (2)汇编 • 对已经编辑好的名为*.ASM的源文件,我们可以调用DOS 下的宏汇编程序MASM或小汇编程序ASM进行汇编。 • 为了适应编制多模块组成的大程序和调用 DOS支持下的公 共子程序的需要,汇编以后的目标程序中的地址部分仍不 是可执行的绝对地址,而是可浮动的相对地址。
2018/9/26 汇编语言程序设计教程 22
常见错误信息及其含义
Operand must be segment or group. • 操作数应当是段名或组名。提供的却是其他名字或常数。 Symbol has no segment. • 不知道标识符的段属性。 Operand must be type specifier. • 操 作 数 应 给 出 类 型 说 明 符 , 如 NEAR 、 FAR 、 BYTE 、 WORD等。 Symbol already defined locally. • 已被指定为内部( Local )标识符,又说明为 EXTRN 的操 作数。
2018/9/26
汇编语言程序设计教程
8
常用DOS命令
• • • • • • • • • 查看目录命令DIR,它列出指定盘上的文件目录。 如:C>DIR D: 或 C>DIR D:/W 它们将列出D盘上全部文件。 显示命令 TYPE ,它将磁盘上所指文件的内容显示在屏幕 上或在打印机上输出(若打印机已联机)。 如:C>TYPE TEST.ASM 此命令将当前目录下的文件TEST.ASM的内容显示出来。 拷贝命令COPY,它把一个或多个文件拷贝成副本。 如:C>COPY TEST1.ASM A: 将把C盘的文件TEST1.ASM同名复制到A盘上。

汇编语言程序设计(第四版)第2章【课后答案】讲解

汇编语言程序设计(第四版)第2章【课后答案】讲解

汇编语言程序设计第四版【课后习题答案】--囮裑為檤第2章8086的指令系统〔习题2.1〕已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。

(1)mov ax,1200h(2)mov ax,bx(3)mov ax,[1200h](4)mov ax,[bx](5)mov ax,[bx+1100h](6)mov ax,[bx+si](7)mov ax,[bx][si+1100h]〔解答〕(1)AX=1200H(2)AX=0100H(3)AX=4C2AH ;偏移地址=bx=0100h(4)AX=3412H ;偏移地址=bx=0100h(5)AX=4C2AH ;偏移地址=bx+1100h=1200h(6)AX=7856H ;偏移地址=bx+si=0100h+0002h=0102h(7)AX=65B7H ;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h〔习题2.2〕指出下列指令的错误(1)mov cx,dl(2)mov ip,ax(3)mov es,1234h(4)mov es,ds(5)mov al,300(6)mov [sp],ax(7)mov ax,bx+di(8)mov 20h,ah〔解答〕(1)两操作数类型不匹配(2)IP指令指针禁止用户访问(3)立即数不允许传给段寄存器(4)段寄存器之间不允许传送(5)两操作数类型不匹配(6)目的操作数应为[ SI ](7)源操作数应为[BX+DI](8)立即数不能作目的操作数〔习题2.3〕已知数字0 ~ 9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。

四章汇编语言程序设计ppt课件

四章汇编语言程序设计ppt课件
指令助记符:MOV,ADD,…. 指示性(伪指令)操作符:DB,DW,SEGMENT,
ENDS,ASSUME,END ,…. 保留字:SEGMENT ENDS OFFSET SIZE DB
DW DD MOV PUSH ADD SUB MUL DIV INC DEC LOOP PROC ENDP CALL RET END
类别名
CODE、DATA、STACK(同名同类别段连续存放)
第4章 汇编语言程序设计
伪操作命令之三:段定义伪指令
段寄存器说明伪指令ASSUME
ASSUME 段寄存器名:段名[段寄存器名:段名[…..]]
例:
CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
MAIN:
……
CODE ENDS ENDS MAIN
;指定第一条要执行的指令标号
注:1、该伪指令用于明确用SEGMENT定义的段的类型, 使编译程序能生成目标代码程序。
2、在源程序中,该伪操作放在可执行程序的前面。 3、该指令没有给段寄存器赋予实际的初值。这项工作要通
过写指令来完成,其中代码段不需要赋值。
+、-、*、/、MOD、SHL、SHR 都可应用于数字运算。 +、- 可以用于表示存储器操作数的地址,或两个存储器
单元(同一段内)的地址偏移量之差。 例:SUM - 2
CYCLE - GO
第4章 汇编语言程序设计
运算符之二:逻辑运算符
AND、OR、XOR、NOT 按位的逻辑运算 例:IN AL,PORT_VAL
DATA2 DB 0C1H,36H,9EH,0D5H,20H;加数
DATA ENDS;数据段结束
CODE SEGMENT;定义代码段

汇编语言程序设计第四版01详解

汇编语言程序设计第四版01详解
干条实用的指令
涉及堆栈操作、移位指令、输入输出指令、过程指令和 边界检测及乘法指令
第1 章
80286
➢ 16位数据总线,24位地址总线(16MB主存) ➢ 实方式(Real Mode)
与8086工作方式一样 ➢ 保护方式(Protected Mode)
存储管理、保护机制和多任务管理的硬件支持 ➢ IBM PC/AT机使用Intel 80286 CPU ➢ 80286指令系统新增15条保护方式指令
演示
分别乘以各自的基数,记录整数部分,直到小 数部分为0为止
0.8125=0.1101B
0.8125=0.DH
➢ 小数转换会发生总是无法乘到为0的情况
可选取一定位数(精度)
将产生无法避免的转换误差
第1 章
二或十六进制数转换为十进制数
➢ 方法:按权展开
➢ 二进制数转换为十进制数
0011.1010B
↘不易直接控制计算机的各种操作 ↘目标程序比较庞大、运行速度较慢
汇编语言:√
高级语言:×
第1 章
汇编语言的特点
➢汇编语言的优点:
直接控制计算机硬件部件
编写“时间”和“空间”两方面最有效程 序
➢汇编语言的缺点:
与处理器密切有关
需要熟悉计算机硬件系统、考虑许多细节
编写繁琐,调试、维护、交流和移植困难
➢ 基数16,逢16进位,位权为16k,16个数码: 0,1,2,3,4,5,6,7,8,9 A,B,C,D,E,F
➢ 十六进制数:
anan-1…a1a0.b1b2…bm= an×16n+an-1×16n-1+…+a1×161+ a0×160 +b1×16-1+b2×16-2+…+bm×16-m 其中ai,bj是0~F中的一个数码

汇编语言程序设计教程(第4版)课件全套 卜艳萍77页PPT

汇编语言程序设计教程(第4版)课件全套 卜艳萍77页PPT


28、知之者不如好之者,好之者不如乐之者。——孔子

29、勇猛、大胆和坚定的决心能Байду номын сангаас抵得上武器的精良。——达·芬奇

30、意志是一个强壮的盲人,倚靠在明眼的跛子肩上。——叔本华
谢谢!
77

26、要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭

27、只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰
汇编语言程序设计教程(第4 版)课件全套 卜艳萍
26、机遇对于有准备的头脑有特别的 亲和力 。 27、自信是人格的核心。
28、目标的坚定是性格中最必要的力 量泉源 之一, 也是成 功的利 器之一 。没有 它,天 才也会 在矛盾 无定的 迷径中 ,徒劳 无功。- -查士 德斐尔 爵士。 29、困难就是机遇。--温斯顿.丘吉 尔。 30、我奋斗,所以我快乐。--格林斯 潘。

第4章汇编语言程序设计ppt课件

第4章汇编语言程序设计ppt课件

DATA1
11
22
33 44
DATA2
11
00
22
00
44
33
DATA3
22
0
0
0
22
0
0
0
XX
66
55 44 33
28
数据定义伪指令的几点 说明
伪指令的性质决定所定义变量的类型;
定义字符串必须用DB伪指令
例:
DATA1 DB ‘ABCD’,66H
41H
‘A’
42H
‘B’
43H
‘C’
44H
‘D’
AH
DISN:T D2X1H
功能号OAH 字符串在内存中的存放地址
58
2. 定义字符缓冲区
用户自定义缓冲区格式:
N1 N2
存放字符个数:≤255
存放键入的字符 整个缓冲区
实际键入字符数 最大可键入字符数
0DH
59
输入字符串程序段
DAT1 DB 20,?,20 DUP(?)

LEA DX,DAT1 MOV AH,0AH INT 21H
定义的变量为4字型(8字节)
定义的变量为10字节型
26
数据定义伪指令例
DATA1 DB 11H,22H,33H,44H DATA2 DW 11H,22H,3344H DATA3 DD 11H*2,22H,33445566H
以上变量在内存中的 存放形式
27
数据定义伪指令例_变量在内存中的
分布
DSEG SEGMENT DATA1 DB 1,2, 3 DUP(?) DATA2 DW 1234H
DSEG ENDS ESEG SEGMENT

汇编语言4-2

汇编语言4-2

ASM
13

第4章
3 操作数项
操作数项形式多样,可以由各种表达 式组成;(如:算术表达式,逻辑 表达式,关系表达式,数值回送表 达式,属性操作表达式等)
ASM
14

第4章
注意书写格式
Mov ax, ax+1 Mov ax,bx+1 Mov ax,block*2 以上指令书写都不正确;
ASM
8

第4章
(7)基数对准伪操作
格式:.radix expression 功能:指定该指令后默认进制 例如:.radix 10(默认) mov ax,10; mov ax,10d .radix 16 mov ax,10;mov ax,10h
ASM
9

ASM
25

第4章
B)段操作符 例:mov ax,es:[bx+si] C)Short 修饰jmp指令,指出转移范围(-128~127) D)它可以像ptr一样,指定一个类型或距离的地址操作数,该 操作数的段地址与偏移地址与下一存储单元相同 例: First-byte equ this byte Word-table 100 dup(?) Start equ this far mov cx,100
思考“+,-”等运算符和add,sub等指令的区 别
ASM
16

第4章
(5)属性操作符
PTR , 段 操 作 符 , SHORT , THIS , HIGH , LOW,HIGHWORD ,LOWWORD
a) Ptr expression
用于建立符号地址不分配存储空间,使地址 具有另一种类型。 例:Two-word dw ? One-byte equ byte ptr two-word 例:Mov byte ptr [bx],5

汇编语言程序设计教程第4版课件第4章

汇编语言程序设计教程第4版课件第4章

2018/9/26
汇编语言程序设计教程
19
数据定义伪指令的伪操作
2018/9/26
汇编语言程序设计教程
20
数据定义伪指令的操作数
• • • • • • 常数或表达式: 问号(?) 地址表达式(适用DW和DD) 字符、字符串(适用于DB) 重复子句DUP(表达式) 用逗号分开的上述各项
2018/9/26
2018/9/26
汇编语言程序设计教程
12
运算符
• 属性运算符(或称操作符)有PTR、THIS、段操作符、SHORT、 HIGH和LOW计6种。 • 指针操作符PTR用于在本语句中取代一个已经定义过的存储器操作数 的属性,但并不永久改变该操作数的属性,仅在本语句中有效。 • 指定操作符THIS可以象PTR一样建立一个指定类型(BYTE、WORD 或 DWORD )的或指定距离( NEAR 、 FAR )的地址操作数,但该操 作数的段地址和偏移地址与下一个存储单元地址相同。 • 段操作符“:”用来定义段超越,跟在段寄存器名(DS、ES 、SS、 CS)之后,可以给一个存储器操作数指定一个段属性,而不管其原来 隐含的段是什么。 • 运算符SHORT指定一个标号的类型为 SHORT (短标号),即标号到 引用该标号之间的距离在-128~127个字节的范围内。 • 字节分离运算符HIGH和LOW分别得到一个数值或地址表达式的高位 和低位字节。
2018/9/26 汇编语言程序设计教程 4
标号
• 标号用来代表一条指令所在单元的地址, 在代码段中定义及使用。 • 标号放在语句的前面,并用冒号“:”与 操作项分开。标号不是每条指令所必需的, 它也可以用LABEL或EQU伪指令来定义。 • 此外它还可以作为过程名定义。 • 标号经常在转移指令或 CALL指令的操作数 字段出现,用以表示转向的目标地址。

第2章 80X86汇编语言与汇编程序(4)—串操作与程序控制指令

第2章 80X86汇编语言与汇编程序(4)—串操作与程序控制指令

DI,200H CX,128 AX,AX STOSW
当然也可以用字节填充 可以使用重复前缀。 当寄存器AL、AX中的数不变 BBB: CLD LEA DI,0500H 时,使用重复前缀,则是对 某一RAM区域进行填充。 MOV CX,256 例如上电复位后,对某一块内 XOR AL,AL 存区域全部填充0 REP STOSB
GLUT_C 2013-08 25
④ 段间直接转移
格式: JMP FAR PTR dst 功能:用dst给出的段内偏移量代替IP,用dst的段地址代替 CS的内容,转移到新的CS: 偏移地址去执行下一条指令。 注意:在汇编语言程序设计中,dst通常使用符号地址。
例如:
MOV JMP AX, [SI] FAR PTR ABCD
GLUT_C
2013-08
8
例:比较1000:0e00H与1000:0400H连续8字节是否相等,只要有 一个不相同的字节,则设置AL=0A5H表示两个字符串不想等,否 则赋值AL=00H。
CMP_S: MOV MOV MOV MOV MOV CLD MOV REPZ JNZ MOV JMP DONE: MOV CMP_END: RET
8086指令系统(续)
GLUT_C
2013-08
1
2.3.5
串操作指令
串操作指令在教材P.128 字符串传送指令 字符串比较指令 字符串检索指令 取字符串指令 存字符串指令
GLUT_C
2013-08
2
1.字符串传送指令 字符串传送指令MOVSB/MOVSW 格式: MOVSB ;用于字节传送 MOVSW ;用于字传送。 特点: ( 1 ) MOVSB 、 MOVSW 指令,源数据串的默认段 基址 DS ,有效地址为 SI ,目的串段基址 ES ,有效 地址DI。 (2)指令前面常加重复前缀REP,重复执行n次。 (3)重复执行次数 由CX指定 (4)每次传送,DI,SI自动修改(字节传送±1,字 传送±2),加减由方向控制为DF确定。

第二章--第四节--汇编语言程序设计方法(二)

第二章--第四节--汇编语言程序设计方法(二)
VCC GND 31 19 C2 3 0p F Y1 6 . 00 0M HZ 18 E A/VP X1 AT 8 9C5 1 P0. 0 P0. 1 P0. 2 P0. 3 P0. 4 P0. 5 P0. 6 P0. 7 P2. 0 P2. 1 P2. 2 P2. 3 P2. 4 P2. 5 P2. 6 P2. 7 RD WR PSE N AL E /P T XD RXD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 17 16 29 30 11 10 VCC R9 4 . 7K GND SW
A+30HA A(22H) 结束
R0
0010 0000
END
BCD码十进制转换成二进制
例:假如在内部RAM40H单元中存储有一个压缩BCD编码 的两位十进制数,设计一段程序把这个数转换成二进制数 并存入41H单元中。 解题思路: (40H) 16 商为二进制的高四位
余数
余为二进制的低四位
将高四位乘以0AH,再加上低四位即可。
数据排序程序 例:将片内RAM中20H-27H中的数据按照从小到大的顺序重新排列。 解题思路:见下图
RAM地址 原始数据
20H 66H
21H 11H
22H 10H
23H 34H
24H 67H
25H 01H
26H 89H
27H A0H
1
2 3 4 5 6 7
01H
01H 01H 01H 01H 01H 01H
11H
10H 10H 10H 10H 10H 10H
10H
11H 11H 11H 11H 11H 11H
34H
34H 34H 34H 34H 34H 34H

汇编语言4PPT课件

汇编语言4PPT课件

2021/3/9
.startup
例4.6
mov ax,wordX ;测试目标送AX
mov cx,16 ;循环计数器置初值
mov dl,-1 ;计位器置初值
again: inc dl
test ax,1
ror ax,1
;循环指令不影响ZF
loope again
;CX≠0且ZF=jmj1eom(vp 测nbdoyo试ttnfee位oYu,为nddl0),••定继最计,续数大满循控循足环制条环循件次环退数出固
2021/3/9
第4章
单分支程序设计
➢条 件 成 立 跳 转 , 否则顺序执行分 支语句体;注意 选择正确的条件 转移指令和转移 目标地址
2021/3/9
;计算AX的绝对值
例题 求绝对值
•Good cmp ax,0
jns nonneg ;分支条件:AX≥0
neg ax ;条件不满足,求补
nonneg: mov result,ax ;条件满足
例4.2-2/2
图示
12 34 56 78 87 65 43 21h
移位后 34 56 78 87 65 43 21 00h
2021/3/9
例题 代码转换-1/2
;查表法,实现一位16进制数转换为ASCII码显示 .model small .stack 256 .data
ASCII db 30h,31h,32h,33h,34h,35h db 36h,37h,38h,39h ;0~9的ASCII码 db 41h,42h,43h,44h,45h,46h ;A~F的ASCII码
qvar dq 1234567887654321h
.code
mov al,byte ptr qvar[6] mov byte ptr qvar[7],al
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2018/9/26
汇编语言程序设计教程
18
IA-32 CPU功能结构
2018/9/26
汇编语言程序设计教程
19
IA-32 CPU寄存器组
• IA-32 CPU的寄存器可以分为基本体系结构寄存器、系 统级寄存器和调试与测试寄存器三类。 • 其中,基本体系结构寄存器和浮点寄存器应用程序可 以直接访问,一般称作程序可见寄存器。 • 其他寄存器在应用程序设计期间不能直接寻址,只有 特权级为0级的程序才可以使用它们,一般称为程序不 可见寄存器。
2018/9/26
汇编语言程序设计教程
34
分页和虚拟内存
• 在分页机制中,一个段可以被分为不同的 页,所有页的集合称为虚拟内存。虚拟内 存可以转换为实际的物理地址空间。 • IA-32 CPU的页大小固定为4K字节,每一 页的边界地址必须是4K的倍数。
2018/9/26
汇编语言程序设计教程
20
IA-32 CPU常用寄存器
2018/9/26
汇编语言程序设计教程
21
标志寄存器EFLAGS
2018/9/26
汇编语言程序设计教程
22
系统级寄存器
• IA-32 CPU中的系统级寄存器包括内存管理 寄存器和控制寄存器。 • 它们对于用户应用程序是透明的,只有在 优先级为0的层次上所运行的程序才可以改 变这些寄存器。
2018/9/26
汇编语言程序设计教程
28
IA-32 CPU存储器管理
• IA-32 CPU中共有三种内存管理模型:实地 址模型、分段管理模型和平展模型。 • 在不同的处理器操作模式下,IA-32 CPU以 不同的方式管理内存。
2018/9/26
汇编语言程序设计教程
29
实地址模型
• 实地址模型下,IA-32 CPU使用20位地址线,可 以访问1MB的内存,其范围从00000H~FFFFFH, 它是早期16位处理器8086的内存模型。 • 实地址模型规定段起始地址低4位均为0,每段最 大不超过64KB。但是,每段并不要求必须是 64KB,各段之间并不要求完全分开。 • 两个逻辑段可以部分重叠,甚至完全重叠。当然 各段的内容是不允许发生冲突的。
2018/9/26
汇编语言程序设计教程
23
系统地址寄存器
2018/9/26
汇编语言程序设计教程
24
系统地址寄存器中信息位的定义
2018/9/26
汇编语言程序设计教程
25
控制寄存器
• IA-32 CPU中有四个32位的控制寄存器CR0、CR1、CR2 和CR3,这四个控制寄存器的作用是保存全局性的机器状 态和设置控制位。 • 控制寄存器CR0的含义如下:
2018/9/26
汇编语言程序设计教程
16
2.2 IA-32 CPU
2.2.1 IA-32 CPU功能结构 2.2.2 IA-32 CPU寄存器组 2.2.3 IA-32 CPU存储器管理
2018/9/A-32 CPU功能结构
• 80386是典型的32位Intel CPU,在它之后 的32位Intel 80x86微处理器又有新的发展, 但是所有的32位微处理器呈现给程序员的 功能结构都是相似的。 • IA-32 CPU由总线接口单元、指令预取单元、 指令译码单元、执行单元、分段部件和分 页部件六个功能部分组成。
– AX称为累加器,使用频度最高,用于算术、逻辑运算 以及与外设传送信息等; – BX称为基址寄存器,常用作存放存储器地址; – CX称为计数器,作为循环和串操作等指令中的隐含计 数器; – DX称为数据寄存器,常用来存放双字长数据的高16位, 或存放外设端口地址。
2018/9/26 汇编语言程序设计教程 9
2018/9/26 汇编语言程序设计教程 11
标志寄存器FLAGS的结构
• • • • • • • • •
CF——进位标志(Carry Flag)。若CF=1,表示算术运算时产生进位或借位,否则 CF=0。 PF——奇偶标志(Parity Flag)。若PF=1,表示操作结果中“1”的个数为偶数,否则 PF=0。 AF——辅助进位标志(Auxiliary Carry Flag)。若AF=1表示字节运算产生低半字节向 高半字节的进位或借位,否则AF=0。 ZF——全零标志(Zero Flag)。若ZF=1,表示操作结果全为零,否则ZF=0。 SF——符号标志(Sign Flag)。若SF=1,表示符号数运算后的结果为负数,否则 SF=0。 OF——溢出标志(Overflow Flag)。若OF=1,表示当进行算术运算时,结果超过了 最大范围,否则OF=0。 IF——中断允许标志(Interrupt Enable Flag)。若IF=1,则CPU可以响应外部可屏蔽 中断的中断请求;若IF=0,则CPU不允许响应中断请求。 DF——方向标志(Direction Flag)。若DF=1,表示执行字符串操作时按着从高地址 向低地址方向进行;否则DF=0。 TF——单步标志(Trace Flag)。又称跟踪标志。
2018/9/26
汇编语言程序设计教程
10
8086/8088的专用寄存器
• 在8088中采用了存储器分段的概念,将1MB分为若干个 逻辑段,每个逻辑段最大为64KB。 • 段寄存器的值指出了当前正在使用的段的基地址。当前的 代码段基地址由代码段寄存器CS指出,当前的数据段基 地址由数据段寄存器DS指出,当前的堆栈段基地址由堆 栈段寄存器SS指出,当前的源串所在段的基地址由DS指 出,当前的目标串所在段的基地址由附加段ES指出。 • 指令指针寄存器 :专用寄存器组中的指令寄存器IP只能与 CS寄存器相互结合,才能形成指令的物理地址。 • 标志用于反映指令执行结果或控制指令执行形式。它是汇 编语言程序设计中必须特别注意的一个方面。许多指令执 行之后将影响有关的标志位,有些指令的执行要利用某些 标志。
汇编语言程序设计教程 12
2018/9/26
状态标志位的符号表示
2018/9/26
汇编语言程序设计教程
13
8086/8088的存储器组织
• 在微机系统中,一位二进制位用bit来表示,8位二 进制数用Byte(即一个字节)来表示。它们的关 系为:1 Byte = 8 bit。16位二进制位或两个字节 组成一个字Word。 • 对于存储器的每一个存储单元给出一个唯一的编 号,这编号通常是顺序排列的,称做该存储单元 的地址。存储器地址的编码范围取决于给定的二 进制地址码的位数。 • 一个存储单元中存放的信息称为该存储单元的内 容。
2018/9/26
汇编语言程序设计教程
26
控制寄存器
• CR1保留,不能使用,否则将引起无效指令操作 异常。 • CR2是页故障线性地址寄存器,它保存一个32位 的线性地址,该地址是由最后检测出的页故障所 产生的。 • CR3是页目录基址寄存器,它包含了页目录表的 物理基地址。由分页硬件使用,其中低12位总是 0。因此,CPU的页目录表总是按页对齐,即每 页均为4KB。
2018/9/26 汇编语言程序设计教程 31
段选择器和描述符
2018/9/26
汇编语言程序设计教程
32
段寄存器和段描述符高速缓冲寄存器
• 在保护模式的分段管理模型下,每个段寄存器都 有一个与它相联系的但程序员不可见的段描述符 高速缓冲寄存器。它们用来存放描述该段的基地 址、段大小以及段属性等的段描述符。
2018/9/26 汇编语言程序设计教程 5
8位微机指令执行过程
2018/9/26
汇编语言程序设计教程
6
EU与BIU并行工作的情形
2018/9/26
汇编语言程序设计教程
7
8086/8088的寄存器组织
2018/9/26
汇编语言程序设计教程
8
数据寄存器
• 8086/8088有4个16位的数据寄存器:AX,BX, CX,DX。它们都可以分为两个独立的8位寄存器: AH/AL,BH/BL,CH/CL,DH/DL。
变址与指针寄存器
• 变址与指针寄存器包括SI,DI,BP,SP四 个16位寄存器,常用于存储器寻址时提供 地址。
– SI是源变址寄存器,DI是目标变址寄存器,一 般与DS联用确定数据段中某一存储单元地址。 – SP为堆栈指针寄存器,指示栈顶的偏移地址; BP为基址指针寄存器,表示堆栈段中的基地址。
– 建立指令预取队列 – 设立地址段寄存器 – 在结构上和指令设置方面支持多处理器系统
2018/9/26 汇编语言程序设计教程 3
8088 CPU内部结构
2018/9/26
汇编语言程序设计教程
4
8088微处理器
• 8088微处理器内部分为两个部分:执行单元(EU) 和总线接口单元(BIU)。 • BIU单元用来实现EU的所有总线操作。它由地址 加法器,段寄存器CS、DS、SS、ES,指令指针 IP,指令队列缓冲器和总线控制逻辑组成。BIU负 责CPU与存储器或外部设备之间的信息交换。 • EU单元负责指令的执行,由算术逻辑单元ALU、 标志寄存器FLAG、通用寄存器及EU控制器等组 成,主要进行16位的各种运算及有效地址的计算。
2018/9/26
汇编语言程序设计教程
2
8086/8088微处理器
• 8086是Intel系列的16位微处理器,它是采用HMOS 工艺技术制造的,内部包含约29000个晶体管。 8086有16根数据线和20根地址线,其寻址的地址空 间可达1MB。 • 8088的内部寄存器、内部运算部件以及内部操作都 是按16位设计的,但对外的数据总线只有8条。 • 8086/8088的指令是以字节为基础构成的,它的性 能提高,主要依赖于采取了一些以下的特殊措施。
第2章 微型计算机体系结构
2.1 80x86微处理器 2.2 IA-32 CPU 2.3 先进的微处理器
相关文档
最新文档