汇编语言伪指令参考的资料.pptVIP

  • 13
  • 0
  • 约1.76千字
  • 约 72页
  • 2020-09-02 发布于福建
  • 举报
第17章汇编语言伪指令参考资料 第17章汇编语言伪指令参考资料 17,1存储器访问与指令运算符 17.2汇编语言伪指令 第17章汇编语言伪指令参考资料 17.1存储器访问与指令运算符 17.1.1存储器访问(寻址) 对于存储器单元的访问,是通过存储器的单元地 址来实现的。 1.直接寻址 在存储器直接寻址时,指令中的一个操作数会指 出一个已定义的变量名称,如下列的 COUNTER: ADD CX, COUNTER 第17章汇编语言伪指令参考资料 该指令执行时,微处理器把此变量的偏移地址加 上数据段的(起始)地址来确定它在内存中的位置。 2.间接寻址 存储器间接寻址时,操作数可选用基址寄存器(BX BP)或变址寄存器(SI、DI),寄存器的内容就是操作数 的偏移地址,使用常数、位移量及变量可使寻址变得 更灵活。用方括号表示间接寻址,并具有加号(+)的作 用。其用法如下 第17章汇编语言伪指令参考资料 (1)使用基址寄存器BX时写成[BX],默认段寄存器 为DS;使用基址寄存器BP时写成[BP],默认段寄存器 为SS。例如,用BX的内容作为偏移地址(默认段寄存 器为DS),将所指单元的内容传送到DX内 MODⅩ,[B 基址寄存器 2)使用变址寄存器D时写成[D,使用SI时写成 S,默认段寄存器均为DS。例如,用SI的内容作为偏 移地址(默认段寄存器为DS),将所指单元的内容传送 到AX内: MOV AX, SI ;变址寄存器 第17章汇编语言伪指令参考资料 (3)使用[常数]即把一个立即数或变量名放在方括 号内。例如,将AX的内容传送到D作为段地址,BX 作为基址,SI作为变址加上常数4所形成的逻辑地址单 元内: MOV BX+SI+4, AX (4)配合变址寄存器“+或“-位移量。对于常数 或位移只有极小的差别。例如,将以DS为数据段段地 址,结合位移量8,DI变址寄存器,加上常数4所指的 单元内容传送到AX内: MOV AX,8[DI][4];位移量+变址+常数 第17章汇编语言伪指令参考资料 17.1.2汇编语言指令运算符 汇编语言的运算符可分为属性运算符、返回值运 算符,以及定义记录和结构的运算符等。本节先讨论 前两类,定义记录和结构的运算符将在下节中讨论 1. LENGTH运算符 LENGTH运算符返回DUP伪指令操作数所定义的 数据项个数。下面的MOV指令将返回长度10给DX TABLEA DW 10 DUP(?) MOⅤDX. LENGTH TABLEA 第17章汇编语言伪指令参考资料 若操作数中不含DUP项,则运算符返回值01。 LENGTH的其他用法,另参考本节中的SIZE及TYPE 2. OFFSET运算符 OFFSET运算符返回变量或标号的偏移地址(亦 数据段或指令段内的偏移地址)。其一般格式为: OFFSET变量名(标号名) 第17章汇编语言伪指令参考资料 OFFSET变量名(标号名) 下面这条MO指令返回 TABLEA的偏移地址。请 注意,LEA指令不使用 OFFSET也会返回相同的值。 MoV DX, OFFSET TABLEA LEA DX, TABLEA 上面这两条指令功能相同。 第17章汇编语言伪指令参考资料 3.PTR运算符 PTR运算符用BYTE、WORD或 DWORD来更改变 量、常数原先设定的类型OB、DW或DD),并且用 NEAR及FAR来更改标号原来隐含的距离属性。其一般 格式为: New-type PTR变量名(标号名) New-type字段放置所要赋予的新类型,如BYTE 下列为PTR运算符的例子 第17章汇编语言伪指令参考资料 FLDB DB 22H DB 35H FLDW DW 2672H 以7226存储 MOV AH, BYTE PTR FLDW;AH移入低字节(72) ADD BL, BYTE PTR FLDW+1;BL加入高字节(26) MOV BYTE PTR FLDW,05;将05移入低字节 MOV AX, WORD PTR FLDB:将双字节移入AX CALL FAR PTR DISPLAY 调用段外子程序 另一个与PTR功能相似的是 LABEL伪指令,将在 下节说明。

文档评论(0)

1亿VIP精品文档

相关文档