汇编语言程序设计教程第4版课件第2章
汇编语言程序设计教程(第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章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课件
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详解
涉及堆栈操作、移位指令、输入输出指令、过程指令和 边界检测及乘法指令
第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
▪
28、知之者不如好之者,好之者不如乐之者。——孔子
▪
29、勇猛、大胆和坚定的决心能Байду номын сангаас抵得上武器的精良。——达·芬奇
▪
30、意志是一个强壮的盲人,倚靠在明眼的跛子肩上。——叔本华
谢谢!
77
▪
26、要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭
▪
27、只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰
汇编语言程序设计教程(第4 版)课件全套 卜艳萍
26、机遇对于有准备的头脑有特别的 亲和力 。 27、自信是人格的核心。
28、目标的坚定是性格中最必要的力 量泉源 之一, 也是成 功的利 器之一 。没有 它,天 才也会 在矛盾 无定的 迷径中 ,徒劳 无功。- -查士 德斐尔 爵士。 29、困难就是机遇。--温斯顿.丘吉 尔。 30、我奋斗,所以我快乐。--格林斯 潘。
第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
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章
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)—串操作与程序控制指令
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确定。
第二章--第四节--汇编语言程序设计方法(二)
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课件
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 先进的微处理器