▷ 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]里 

最后修改:2022 年 03 月 08 日
如果觉得我的文章对你有用,请随意赞赏