▷ PTR和堆栈访问
在寄存器间接寻址模式下,当操作数的大小未知时会发生错误。例如
MOV AX,[BX] ;AX为16位,[BX]为16位
MOV ArrayW[SI],BL ;BL为8位,ArrayW [SI]为8位
MOV [SI],100 ;两个操作数的大小未知
-PTR运算符可用于寄存器间接模式、基址寻址模式或变址寻址模式下的指定数据大小
一般格式:type PTR 地址表示
例如:
MOV WORD PTR [SI],100 ;[SI]是16位
-使用堆栈进行数据存储时,BP用作地址寄存器
例:从堆栈顶部开始,将3个数据存储在字数组ArrayW中。
MOV BP,SP ; 将堆栈顶部地址(SP)存储在BP中。
XOR BX,BX ; 将BX初始化为0。
MOV AX,[BP] ; [SP]的内容存储到AX里
MOV [BX+ArrayW],AX ; 存储在ArrayW[0]中
MOV AX,[BP+2] ; [SP+2]的内容存储到AX里
MOV [BX+ArrayW+2],AX ; 存储在ArrayW[1]里
MOV AX,[BP+4] ; [SP+4]的内容存储到AX里
MOV [BX+ArrayW+4],AX ; 存储在ArrayW[2]里