(1 OFFSET 格式: OFFSET变量或标号 功能:返回标号或变量的偏移地址值。 (2) SEG 格式:SEG变量或标号 功能:用于取标号或变量的段基值。 例如,定义: SLOT DW25 则: MOV AX,SLOT;从SLOT地址中取一个字送入AX MOV AX, SEG SLOT;将SIOT所在段的段地址送入AX MOV AX, OFFSET SLOT: 将SLOT所在段的段内偏移地址送AX
(1)OFFSET 格式: OFFSET 变量或标号 功能:返回标号或变量的偏移地址值。 (2)SEG 格式: SEG 变量或标号 功能:用于取标号或变量的段基值。 例如,定义: SLOT DW 25 则:MOV AX,SLOT;从SLOT地址中取一个字送入AX MOV AX,SEG SLOT;将SLOT所在段的段地址送入AX MOV AX,OFFSET SLOT; 将SLOT所在段的段内偏移地址送AX
(3) TYPE 格式:TYPE变量或标号 功能:加在变量前,返回变量的类型属性 TYPE运算符的返回值如下: 字节--1字--2、双字--4、(P13表42) NEAR(段内直接近转移,16位地址偏移量) 1 COFF FAR(段间直接远转移,段内16位地址偏移量与段地址) 2。 (4) LENGTH 格式: LENGTH变量 功能:返回一个与存储器地址操作数相联系的单元数。 (5) SIZE 格式:SLZE变量 功能:返回一个为存储器操作数分配的字节数
(3)TYPE 格式: TYPE 变量或标号 功能:加在变量前,返回变量的类型属性。 TYPE运算符的返回值如下: 字节 ----1、字----2、双字----4、(P132表4-2) NEAR(段内直接近转移,16位地址偏移量)-----1(0FFH)、 FAR(段间直接远转移,段内16位地址偏移量与段地址)-----2。 (4)LENGTH 格式: LENGTH 变量 功能:返回一个与存储器地址操作数相联系的单元数。 (5) SIZE 格式: SIZE 变量 功能:返回一个为存储器操作数分配的字节数
LENGTH和SIZE只应用于数据存储器操作数(即用 DBIDWIDD等定义的 操作数)。 例如:若 MULT DW50DUP(0) AU LENGTH (MULT-WORD )=50 SIZE (MULT-WORD)=100 注意:SIZE(X)=( LENGTH X)X( TYPE X) 3.修改属性运算符 属性运算符用来给指令中的操作数指定一个临时属性,而暂时忽略当前 的属性。 (1)段操作符 格式:段前缀:变量或地址表达式 功能:段前缀有段寄存器CS、DS、ES、SS后根冒号“:”,用来表示某个 变量或地址修改到哪个段寄存器提供的段基址中。 例如: MOV AX,ES:[BX
LENGTH和SIZE只应用于数据存储器操作数(即用DB/DW/DD等定义的 操作数)。 例如:若 MULT DW 50 DUP(0) 则 LENGTH(MULT-WORD)=50 SIZE(MULT-WORD)=100 注意:SIZE(X)=(LENGTH X)☓(TYPE X) 3.修改属性运算符 属性运算符用来给指令中的操作数指定一个临时属性,而暂时忽略当前 的属性。 (1) 段操作符 格式:段前缀:变量或地址表达式 功能:段前缀有段寄存器CS、DS、ES、SS后根冒号“ : ” ,用来表示某个 变量或地址修改到哪个段寄存器提供的段基址中。 例如:MOV AX,ES:[BX]
(2) PTR 格式:类型PTR表达式 功能:建立一个存储器地址操作数,它与其后的存储器地址操作数有相同的段地 址偏移量,但有不同的类型。 特点:不单独使用,与8086指令一起使用。 类型:BYTE:字节 wORD:字 DWORD:双字 例如: BUF DW25 此时BUF已定义成字单元。若我们想取出它的第一个字节内容,则可用 PTR对其作用,使它暂时改变为字节单元,即 MOV AL, BYTE PTR BUF 如: MOV BYTE PTRD,10H ;[DI=10H MOV WORD PTR[1000H,10H;10011000=0010H JMP DWORD PTR[000H;转移地址放在1000H开始的4个单元中,低2 个字节为偏移量,高2个字节为段地址
(2)PTR 格式:类型 PTR 表达式 功能:建立一个存储器地址操作数,它与其后的存储器地址操作数有相同的段地 址偏移量,但有不同的类型。 特点:不单独使用,与8086指令一起使用。 类型:BYTE:字节 WORD:字 DWORD:双字 例如:BUF DW 25 此时BUF已定义成字单元。若我们想取出它的第一个字节内容,则可用 PTR对其作用,使它暂时改变为字节单元,即 MOV AL,BYTE PTR BUF 如:MOV BYTE PTR[DI],10H ;[DI]=10H MOV WORD PTR[1000H],10H ; [1001][1000]=0010H JMP DWORD PTR [1000H] ;转移地址放在1000H开始的4个单元中,低2 个字节为偏移量,高2个字节为段地址
(3)THIS 格式:变量/标号 EQU THIS类型/距离 功能:是将 EQUTHIS右边的类型距离属性,赋给左边的变量/ 标号,该变量或标号的段地址和偏移地址与下一个存储单元的地 址相同 例如: FISRT EUQ THIS BYTE TABLE DW 200 DUP(?) FIRST的偏移地址值与 TABLE的偏移地址值相同,区别在于 FIRST变量为字节类型, TABLE为字类型。 (4)SHORT 格式: SHORT标号 功能: SHORT用来说明转移类指令中转向地址的属性,指出转 向的目标地址与本指令之间的距离在-128到+127之间,即限制 在短转移范围内。 例如:L1: JMP SHORT L2 L2: MOV AX, 0
(3) THIS 格式:变量/标号 EQU THIS 类型/距离 功能:是将EQU THIS 右边的类型/距离属性,赋给左边的变量/ 标号,该变量或标号的段地址和偏移地址与下一个存储单元的地 址相同。 例如: FISRT EUQ THIS BYTE TABLE DW 200 DUP(?) FIRST的偏移地址值与 TABLE的偏移地址值相同,区别在于 FIRST变量为字节类型,TABLE为字类型。 (4) SHORT 格式: SHORT 标号 功能:SHORT用来说明转移类指令中转向地址的属性,指出转 向的目标地址与本指令之间的距离在-128到+127之间,即限制 在短转移范围内。 例如:L1: JMP SHORT L2 … L2: MOV AX, 0