汇编-指针

一个变量如果包含的是另一个变量的地址, 则该变量就称为指针(pointer) 。指针是操作数组和数据结构的极好工具,因为它包含的地址在运行时是可以修改的。

复制代码
.data   
arrayB byte 10h, 20h, 30h, 40h 
ptrB dword arrayB
ptrB1 dword OFFSET arrayB

arrayW WORD 1000h,2000h,3000h
ptrW DWORD arrayW

32位汇编时,指针都是32位的

TYPEDEF定义指针类型

复制代码
.386  
.model flat,stdcall 
option casemap:none
.stack 4096


PBYTE TYPEDEF PTR BYTE      ;PBYTE指向8位数据的指针类型
;这样的声明通常放在靠近程序开始的地方, 在数据段之前, 使得接下来就可以用PBYTE 来定义变量
PWORD TYPEDEF PTR WORD     ;指向字的指针类型
PDWORD TYPEDEF PTR DWORD   ;指向双字的指针类型

.data   
arrayB BYTE 10h,20h,30h,40h 
ptr6 PBYTE ?         ;指针变量ptr6末初始化
ptr1 PBYTE arrayB     ;指针变量ptr2指向arrayB数组

arrayW WORD 1, 2, 3
arrayD DWORD 4, 5, 6
ptr2 PWORD arrayW 
ptr3 PDWORD arrayD


ExitProcess PROTO,dwExitCode:DWORD      

.code  
main PROC   
	
	mov esi, ptr1     ;把ptr1的值(arrayB的地址)给esi
	mov al, [esi]     ;al=10h
	mov esi, ptr2     
	mov ax, [esi]     ;ax=0001h
	mov esi, ptr3
	mov eax, [esi]    ;eax=00000004


INVOKE ExitProcess,0  
main ENDP   
END main  
相关推荐
CC-NX10 小时前
32位汇编:实验5算数运算类指令使用
汇编·win32·算数运算
伐尘10 小时前
【汇编】RAX,eax,ax,ah,al 关系
汇编
CHANG_THE_WORLD10 小时前
c语言位运算 汇编代码分析
c语言·开发语言·汇编
CHANG_THE_WORLD11 小时前
if条件语句 三目运算符 汇编分析
汇编·算法·条件语句·if 语句·汇编分析·条件语句汇编分析
CHANG_THE_WORLD2 天前
有符号数和无符号数的 汇编视角 区别
汇编
南飞测绘视界2 天前
【编号220】中国国内生产总值历史数据汇编1952-2021合订本(PDF扫描版)
汇编·pdf·年鉴
Ayanami_Reii4 天前
汇编和C语言结构
c语言·汇编·笔记
脑子慢且灵6 天前
C语言与Java语言编译过程及文件类型
java·c语言·开发语言·汇编·编辑器
日更嵌入式的打工仔10 天前
汇编与反汇编
汇编
oioihoii15 天前
从汇编角度看C++优化:编译器真正做了什么
java·汇编·c++