当前位置: 首页 > article >正文

汇编-指针

一个变量如果包含的是另一个变量的地址, 则该变量就称为指针(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  


http://www.kler.cn/a/134606.html

相关文章:

  • 在 Service Worker 中caches.put() 和 caches.add()/caches.addAll() 方法他们之间的区别
  • python装饰器的使用以及私有化
  • 24/11/12 算法笔记<强化学习> Policy Gradient策略梯度
  • 人脸识别技术:从算法到深度学习的全面解析
  • ubuntu cmake CPack将第三方库进行打包
  • 搭建监控系统Prometheus + Grafana
  • npm install 下载不下来依赖解决方案
  • git安装后报git: ‘remote-https‘ is not a git command. See ‘git --help‘.
  • 【Ant Design合集】自用总结
  • IDEA 集成 Docker 插件一键部署 SpringBoot 应用
  • 解决小程序路由超过10层限制
  • 面试题c/c++--语言基础
  • SDL2 播放音频数据(PCM)
  • TP_Link WR886N 硬改闪存16M内存64M,刷入openwrt
  • JSP 四大域对象
  • 分类预测 | Matlab实现基于PSO-SDAE粒子群优化算法优化堆叠去噪自编码器的数据分类预测
  • 【开源】基于JAVA的超市自助付款系统
  • NewStarCTF2023 Reverse方向Week3 ez_chal WP
  • Unity开发之C#基础-集合(字典)(Dictionary)
  • 【C++】​——多态性与模板(其一)
  • 前端 webpack 面试题
  • nginx学习(3)Nginx 负载均衡
  • 2023年中国地产SaaS分类、产业链及市场规模分析[图]
  • 在Go编程中调用外部命令的几种场景
  • 大学生如何免费认证,下载,安装MATLAB
  • 2023年中国稀土精密加工分类、市场规模及发展趋势分析[图]