62
寻寻寻寻 ( 寻寻寻 ) 1. 寻寻寻寻寻 MOV AX, 1234H 2. 寻寻寻寻寻 MOV AX, BX 3. 寻寻寻寻 MOV AX, [1234H] 4. 寻寻寻寻寻寻寻 MOV AX, [BX] 5. 寻寻寻寻 MOV AX, [BX+100H] 6. 寻寻寻寻 MOV AX, [SI+100H] 7. 寻寻寻寻寻寻寻 MOV AX, [BX+SI] 8. 寻寻寻寻寻寻寻寻寻寻寻 MOV AX, [BX+SI+100H]

寻址方式 ( 实模式 ) : 1. 立即数寻址 MOV AX, 1234H 2. 寄存器寻址 MOV AX, BX 3. 直接寻址 MOV AX, [1234H]

Embed Size (px)

DESCRIPTION

寻址方式 ( 实模式 ) : 1. 立即数寻址 MOV AX, 1234H 2. 寄存器寻址 MOV AX, BX 3. 直接寻址 MOV AX, [1234H] 4. 寄存器间接寻址 MOV AX, [BX] 5. 基址寻址 MOV AX, [BX+100H] 6. 变址寻址 MOV AX, [SI+100H] 7. 基址加变址寻址 MOV AX, [BX+SI] 8. 带位移的基址加变址寻址 MOV AX, [BX+SI+100H]. 复习. 数据结构的基址寻址方式. MOV AX, [BX+100H]. 字段 n. - PowerPoint PPT Presentation

Citation preview

Page 1: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

寻址方式 ( 实模式 ) :1. 立即数寻址 MOV AX, 1234H2. 寄存器寻址 MOV AX, BX3. 直接寻址 MOV AX, [1234H]4. 寄存器间接寻址 MOV AX, [BX] 5. 基址寻址 MOV AX, [BX+100H]6. 变址寻址 MOV AX, [SI+100H]7. 基址加变址寻址 MOV AX, [BX+SI]8. 带位移的基址加变址寻址

MOV AX, [BX+SI+100H]

Page 2: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

数据结构的基址寻址方式

字段 0

字段 n

字段 n-1

字段 2字段 1

基址寄存器

+

(位移量)

MOV AX, [BX+100H]

Page 3: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

(位移量)

数据阵列的变址寻址方式

单元 0

单元 n

单元 n-1

单元 2单元 1

变址寄存器

+

MOV AX, [SI+100H]

Page 4: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

单元 (0,0)单元 (0,1)

单元 (0,n)

(位移量)

二维数据阵列的基址加变址寻址方式

基址寄存器

+

MOV AX, [BX+SI+100H]

单元 (1,0)

单元 (1,n)

单元 (1,1)

单元 (m,n)

变址寄存器

+

Page 5: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

调试程序 DEBUG

R—— 寄存器命令 标志 置位 复位OF OV NV

DF DN UP

IF EI DI

SF NG PL

ZF ZR NZ

AF AC NA

PF PE PO

CF CY NCAFPFcf

PF

功能:检查或修改寄存器的值

R [ 寄存器名 ]

Page 6: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

调试程序 DEBUG

D—— 转储命令

功能:检查存储器的内容

D [ 内存地址 ]

Page 7: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

调试程序 DEBUG

E—— 输入命令

功能:检查或修改存储器的内容

E [ 内存地址 ]

•回车:结束输入命令•空格:不修改存储器内

容,显示下一个 存储单元的内容

•输入新值,后回车或空格

Page 8: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

调试程序 DEBUG

A—— 汇编命令

功能:汇编程序指令

A [ 起始地址 ]

U—— 汇编命令

功能:反汇编程序指令

U [ 起始地址 ]

Page 9: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

调试程序 DEBUG

T—— 跟踪命令

功能:跟踪程序执行

T=[ 起始地址 ][ 指令条数 ]

Page 10: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

调试程序 DEBUG

R—— 运行命令

功能:运行程序

G=[ 起始地址 ]

Page 11: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

算术运算指令的例子

1. 设两个十进制数 1234 和 5678 分别存放在数据段中从 1000H 和 2000H 开始的单元中,计算这两个数的和,结果存放在 3000H 开始的单元中 MOV AL, [1000]

ADD AL, [2000] ;低字节相加DAA ;十进制调整MOV [3000], AL ;存低字节和MOV AL, [1001]ADC AL, [2001] ;高字节带进位相加DAA ;十进制调整MOV [3001], AL ;存高字节和

Page 12: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

算术运算指令的例子

2. 实现非压缩 BCD 数 68=48 的程序MOV AL, 06MOV BL, 08MUL BL ;AAM ;

AX (AL)(BL)十进制调整,使 (AX)=0408

Page 13: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

算术运算指令的例子

3. 实现非压缩 BCD 数 175=3 余 2 的程序MOV AX, 0107MOV BL, 05AAD ;DIV BL ; 除法,得商 (AL)=03 ,

余数 (AH)=02

十进制调整,使 (AX)=0011

Page 14: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

第三章 第三章 PentiumPentium 微处理器的指令系统微处理器的指令系统3.1 概述3.2 Pentium 微处理器的寻址方式3.3 数据传送指令3.4 算术运算指令3.5 逻辑运算指令3.6 串操作指令3.7 程序控制指令3.8 保护模式的系统控制指令3.9 浮点运算指令3.10 MMX 指令简介

Page 15: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

3.5 逻辑运算指令

位操作AND 目标操作数,源操作数OR 目标操作数,源操作数XOR 目标操作数,源操作数NOT 目标操作数

Page 16: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

位操作AND 主要用于将二进制数的某些位清 0

AND BL, 0FH

xxxxxxxx (BL)

00001111 0F

0000xxxx 结果AND

Page 17: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

位操作OR 主要用于将二进制数的某些位置 1

OR BL, 0FH

xxxxxxxx (BL)

00001111 0F

xxxx1111 结果OR

Page 18: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

位操作XOR 主要用于将二进制数的某些位求反

XOR BL, 0FH

xxxxxxxx (BL)

00001111 0F

xxxxxxxx 结果XOR

Page 19: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

移位操作指令格式:

SHL 目标操作数,计数

移 1 位时,计数值可以为立即数 1移多位时,计数值必须先存入 CL 寄存器

MOV CL, 3SHL AX, CL

P.93

Page 20: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

位测试TEST 用于测试二进制数的某些位 ( 一般为 1 位 )

TEST AL, 1JNZ RIGHTTEST AL, 128JNZ LEFT

当被测试为为 0 时, ZF 置位( ZF=1 ) ;当被测试为为 1 时, ZF 复位( ZF=0 )

Page 21: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

位测试位测试 : BT 目标操作数,源操作数位测试置 0: BTR 目标操作数,源操作数位测试置 1: BTS 目标操作数,源操作数位测试取反 : BTC 目标操作数,源操作数测试目标操作数中由源操作数指定的位,将其值送 CF 标志源操作数以目标操作数的长度为模

MOV AX, 1FF0H BTS AX, 24

Page 22: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

位扫描向前位扫描 : BSF 目标操作数,源操作数向后位扫描 : BSR 目标操作数,源操作数对源操作数进行扫描,将遇到的第一个 1 所在的位置送目标操作数,并将 ZF 清 0 。如果源操作数为 0 ,则目标操作数不变,且ZF 置 1

MOV EAX, 60000000H BSF EBX,EAX

Page 23: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

3.6 串操作指令

串传送

MOVSBMOVSWMOVSD

将一个字节 / 字 / 双字从DS:SI ES:DI

指令前要先将源串首地址 DS:SI 目标串首地址 ES:DI

完成操作后自动修改 SI 、 DI ,使其指向串的下一个元素

Page 24: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

串传送

完成操作后自动修改 SI 、 DI ,使其指向串的下一个元素

串操作方向由 CLD 和 STD 指令设置

CLD 地址递增方向( DF=0 )STD 地址递减方向( DF=1 )

Page 25: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

串传送 —— 重复前缀

需要先将串的长度存入 CX 寄存器

每处理完一个元素自动使 CX-1, 直到 CX=0才结束串传送——完成整个串的传送

REP MOVSBREP MOVSWREP MOVSD

例: P.96

Page 26: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

例:

串传送

MOV SI, OFFSET S1MOV DI, OFFSET S2MOV CX, 18REP MOVSB….

S1 DB “This is a string!$”S2 DB 18 DUP(0)

Page 27: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

串比较

CMPSBCMPSWCMPSD

比较地址为 DS:SI 、 ES:DI 的两个字节 / 字 / 双字

指令前通常加重复前缀 REPZ/REPE ,从而当发现两个串不同时结束比较。

Page 28: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

例:

串比较

MOV SI, OFFSET S1MOV DI, OFFSET S2MOV CX, xxREPZ CMPSBJNZ Not_Equal

Equal: ……Not_Equal:

…...

Page 29: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

串搜索SCASBSCASWSCASD

在首地址为 ES:DI 的串中搜索某个元素(字节 / 字 / 双字)

事先要将待搜索的元素存入 AL/AX/EAX

指令前通常加重复前缀 REPNZ/REPNE ,从而当发现待搜索的元素时结束搜索。

Page 30: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

例:

串搜索

MOV DI, OFFSET StringMOV CX, xxMOV AL, ‘h’REPNZ SCASBJNZ Not_Found

Found: ……Not_ Found:

…...

Page 31: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

串装入LODSBLODSWLODSD

将地址为 DS:SI 的一个字节 /字 / 双字装入 AL/AX/EAX

串装入指令没有重复前缀

Page 32: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

例: MOV SI, OFFSET StringMOV CX, xxMOV AH, 2LODSBMOV DL, ALINT 21LOOP NextChar

NextChar:

串装入

Page 33: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

串存储LODSBLODSWLODSD

将 AL/AX/EAX 的值存入地址为 ES:DI 的内存单元

利用重复前缀 REP ,可以建立一个取值相同的数据串

Page 34: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

3.7 程序控制指令

控制程序的流向:

无条件转移条件转移循环控制过程调用与返回中断

Page 35: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

无条件转移

JMP Label1.…..

Label1:

条件转移

相当于 goto 语句

根据执行上一指令后标志寄存器的状态而决定是否转移

Page 36: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

条件转移

根据执行上一指令后标志寄存器的状态而决定是否转移

JA >JAE >=JB <JBE <=

JG >JGE >=JL <JLE <=

JG 标号

Page 37: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

条件转移

JZJNZJCJNCJOJNO

JPJNPJSJNS

JCXZ

Page 38: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

循环控制

LOOPLOOPE/LOOPZLOOPNE/LOOPNZ

与 CX 配合使用, CX 存放循环次数

Page 39: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

第四章 汇编语言程序设计第四章 汇编语言程序设计

4.1 概述4.2 汇编语言的基本语法4.3 汇编语言程序的控制结构4.4 DOS/BIOS 中断调用4.5 保护模式下的汇编语言程序设计4.6 Win32 汇编语言程序设计4.7 与高级语言的接口

Page 40: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

4.1 概述

汇编语言程序的上机处理过程

主要的汇编程序: MASM 、 TASM

Page 41: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

实模式汇编语言源程序的结构DATA SEGMENT …...DATA ENDSSTACK SEGMENT STACK …...STACK ENDSCODE SEGMENT ASSUME DS:DATA, SS:STACK, CS:CODESTART: ……

CODE ENDS END START

Page 42: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

4.2 汇编语言的基本语法

1. 常量、变量和表达式常量二进制 xxxxxxxxB 01000101B八进制 xxxO 或 xxxQ 721O 或 721Q十进制 xxxx 或 xxxxD 1991 或 1991D十六进制 xxxxH 0F1D4H字符串 ‘ xxx’ 或“ xxx” ‘AB’

数值常量、符号常量(用 EQU 或 = 定义)

Page 43: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

变量

内存单元的名字 , 由 DB/DW/DD/DQ/DT 定义

BUF DB ?MOV BUF,AL

变量的三种属性:段值 SEG偏移量 OFFSET类型 BYTE/WORD/...

Page 44: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

标号

指令存放单元的符号地址 , 是转移 / 调用 / 循环指令的操作数

标号的三种属性:段值 SEG偏移量 OFFSET类型 NEAR/FAR

Page 45: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

表达式

由操作数和运算符组成的序列

操作数可以是寄存器、常量(数值常量、符号常量)、存储器操作数(标号、变量)

运算符包括:算术运算符、逻辑运算符、关系运算符、数值返回运算符和属性运算符

Page 46: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

数值返回运算符(分析运算符)

SEG 变量 / 标号OFFSET 变量 / 标号TYPE 变量 / 标号

变量返回类型: 1 字节、 2 字、 4 双字标号返回类型: -1NEAR 、 -2FAR

LENGTH 变量SIZE 变量

Page 47: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

属性运算符(合成运算符)

•PTR类型 PTR 表达式

MOV WORD PTR [BX], 0

•THISTHIS 类型

MY_BYTE EQU THIS BYTEMY_WORD DW 100 DUP(?)

Page 48: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

2. 指令语句

标号: 指令助记符 操作数 ;注释

Page 49: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

3. 伪指令语句

名字 伪操作命令 操作数 ;注释

符号定义语句定义符号常量

PRICE EQU 281PORT = 6PORT = PORT +1

Page 50: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

数据定义语句

定义变量、分配存储单元等

变量名 DB/DW/DD/DQ/DT 操作数,…,操作数

操作数可以是:数值表达式或表、字符串、?、N DUP 表达式

VAR DW ?ARRAY DB 100 DUP (0)

Page 51: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

段定义语句

P. 131

过程定义语句

P. 131

程序结束语句

END 表达式

表达式为程序的第一条指令的地址

Page 52: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

4.3 汇编语言程序的控制结构

分支结构

程序段 1 程序段 2

条件JZ L1

L1: …… …...

L2: …...

后继程序L3: …...

JMP L3

TEST AX, 1

Y N

Page 53: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

程序段 1

后继程序

条件JZ L1

L1: …… …...

…...

TEST AX, 1分支结构

Y N

Page 54: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

循环结构

先执行、后判断

初始化部分

循环体

修改部分

条件

Page 55: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

先判断、后执行

初始化部分

循环体

修改部分

条件

后继程序

循环结构

Page 56: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

循环结构

循环控制:计数控制 LOOP条件控制 JZ/...

Page 57: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

4.4 DOS/BIOS 中断调用

Page 58: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]
Page 59: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]
Page 60: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]
Page 61: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

习题

1. 已知 (CS)=0A00H, (DS)=0B00H, (SI)=0100H, (DI)=0200H,(BX)=0300H。指出下列指令中源操作数的寻址方式,并计算③ -⑦小题操作数的物理地址。①MOV AX, 1234H②MOV AX, BX③MOV AX, [SI]④MOV AX, [1234H]⑤MOV AX, [BX+400H]⑥MOV AX, [BX+SI]⑦MOV AX, [BX+DI+0400H]

Page 62: 寻址方式 ( 实模式 ) : 1.  立即数寻址 MOV AX, 1234H 2.  寄存器寻址 MOV AX, BX 3.  直接寻址 MOV AX, [1234H]

2. 已知 (AX)=701FH, (BX)=13F1H。指出执行下列指令后目标操作数的内容和状态标志位的状态。

SF ZF AF PF CF OF①ADD AX, BX (AX)= H ; ②SUB AX, BX (AX)= H ;③AND AX, BX (AX)= H ;④OR AX, BX (AX)= H ;⑤XOR AX, BX (AX)= H ;⑥IMUL BL (AX)= H ;⑦MUL BH (AX)= H ;⑧SHR AX, 2 (AX)= H ;⑨SAR AX, 2 (AX)= H ;⑩SHL AX, 2 (AX)= H .

3.已知 (CS)=1075FH, (IP)=0300H, (SI)=0100H, (DS:100H)=00H, (DS:101H)=10H。指出执行下列指令后程序控制转到何处。①JMP 10H②JMP 1000H③JMP WORD PTR [SI]