- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV BX,AX
;BX←AX器操作数的寻址
当操作数存放在内存中时,寻找操作数归结为 如何确定存储单元的地址
逻辑在地和址,可在段6基4K值B:范偏围移内量寻址。实际寻 址过程中,可能包含不同部分,EA为它 们的由相段加寄存之器构的成内容E给A出的3主个要分确定量该的部不分的同内组容合(EA,)
有效地址是基址寄存器(BX/BP)、变址寄存 器(SI/DI)与一个8位或16位位移量之和:
EA=BX/BP+SI/DI+8/16位位移量
该方式中,BX/BP选一,SI/DI选一 段地址对应BX基址寄存器默认是DS,对应BP
基址寄存器默认是SS;可用段超越前缀改变
7.相对基址变址寻址方式
MOV AX, 06H[BX+SI] ← → MOV AX, DS:[BX+SI+06H] MOV AL,TAB[BX][DI] ← → MOV AL,DS:TABLE[BX][DI]
直接寻址的执行
MOV AX,DS:[2000H]
4. 寄存器间接寻址
有效地址存放在寄存器中,如BX、BP、SI、DI 所使用的寄存器相当于地址指针,当修改其内
容后可指向不同的存储单元 书写时用[]括住寄存器名,以区别于寄存器寻址 若以BX、SI、DI间址,操作数默认在数据段;
若以BP间址,操作数默认在堆栈段;使用段超 越前缀改变段
寄存器相对寻址的功能
寄存器相对寻址的执行
代码段 DS 数据段
操作码 24H 00H
12H 34H 56H 78H 9AH
MOV AL,0024H[SI] EA=24H+(SI)
0024H (SI)
可(S看I)作=0数据起(A始L单)=元12H (SI)=的1偏移(量AL)=34H
(SI)=2 (AL)=56H
MOV BX,VAR ← → MOV BX,DS:VAR ;表示将用符号VAR表示的字单元的内容→ AX ;不声明段则默认为数据段,指明段寄存器则可实现
段跨越
用常数表示的位移量
MOV AX,DS:[2000H] ;表示将数据段偏移2000H字节的字单元的内容→ AX
直接寻址的功能
MOV AX,DS:[2000H]
立即数寻址的执行
2. 寄存器寻址
操作数存放在CPU的内部寄存器reg中,可 以是:
8位寄存器:
AH、AL、BH、BL、CH、CL、DH、DL
16位寄存器: AX、BX、CX、DX、SI、DI、BP、SP
4个段寄存器seg:
CS、DS、SS、ES
MOV AX,1234H ;AX←1234H
量之和,寄存器可以是BX、BP或SI、DI EA = BX/BP 或 SI/DI +0/8/16位位移量
基址寻址 变址寻址
段地址对应BX/SI/DI寄存器默认是DS,对应BP 寄存器默认是SS;可用段超越前缀改变
该方式不仅可以修改指针,还可以修改位移量, 对数组操作十分方便
5.寄存器相对寻址方式
数(S组I)内=3某元素(A距L数)=组78H (S起I)始=4单元(的A偏L)移=9AH
通过修改SI可遍历整个数组
6.基址变址寻址方式
有效地址由基址寄存器(BX或BP)的内 容加上变址寄存器(SI或DI)的内容构成:
EA=BX/BP+SI/DI
段地址对应BX基址寄存器默认是DS,对 应BP基址寄存器默认是SS;可用段超越 前缀改变
汇编语言程序设计课件3
基本概念—指令系统
每一种计算机都有一组指令集供用户 使用,这组指令集称为该计算机的指令系 统。指令集中的每条指令在汇编语言中都 是用助记符来表示的。
立即数寻址指令
MOV AL,05H ;AL←05H MOV AX,0102H ;AX←0102H
立即数寻址的功能
MOV AX,10H[SI]
← → MOV AX,DS:10H[SI]
MOV AX,ARRAY[BX] ← → MOV AX,DS:ARRAY[BX]
MOV TABLE[DI],AL ← → MOV DS:TABLE[DI],AL
MOV TABZ[BP],BL ← → MOV SS:TABZ[BP],BL
6.基址变址寻址方式
MOV AX,[BX][SI] ← → MOV AX,DS:[BX+SI] MOV AX,[BP][DI] ← → MOV AX,SS:[BP+DI] MOV AX,DS:[BP][DI] ← → MOV AX, DS:[BP+DI]
基址变址寻址的功能
基址变址寻址的执行
7.相对基址变址寻址方式
[ ]之间表示相加的关系 [BX][SBIX]、←SI分→别[存B放X数+组S的I脚] 标
二、与转移地址有关的寻址方式
程序代码亦存放在存储器中,如 何控制程序的走向(转移位置的地 址CS:IP)是本部分所涉及的内容, 由于它们与具体的指令相关,他们 的介绍放在指令中讲解。
§ 3.3 80x86的指令系统
物形理成地了址不=(同段的寄寻存址器方)式×。16 + EA
位移量:指令中给出16位数(常数、符号) EA 基地址:有基址寄存器BX或基址指针BP给出
由变址寄存器(SI或DI)给出
3. 直接寻址
有效地址在指令中直接给出
操作数的16位偏移量直接包含在指令中,与操作码 一起放在代码段中
用符号表示的位移量
指令分类
数据传送指令
算术运算指令
功能
逻辑指令 串操作指令
程序转移指令
MOV DWORD[BP][SI],DX ← → MOV SS:DWORD[BP][SI],DX
MOV AX,ARRAY[BX][BP]
×
MOV AX,DA[SI][DI]
×
31A00
3000:1A00
MOV AL,ARRAY[BX][SI]
数据段 DS ARRAY
EA ⊕
BX
二维数组起始单元
SI
MOV AX,[SI] ← → MOV AX, DS:[SI] MOV CL,[BX] ← → MOV CL, DS:[BX] MOV BL,[BP] ← → MOV BL, SS:[BP]
寄存器间接寻址的功能
寄存器间接寻址的执行
5.寄存器相对寻址方式
直接变址寻址,基址寻址,变址寻址 有效地址是寄存器内容与有符号8位或16位位移