.386
.modelflat, stdcall

include   windows.inc
include
   kernel32.inc
include
   masm32.inc
include
   debug.inc
includelib
kernel32.lib
includelib
masm32.lib
includelib
debug.lib

.code
main proc
   ;局部变量中的类型不能使用缩写
   LOCAL v1: dword
   
   ;可用逗号间隔写在一行
   LOCAL v2: dword, v3: dword
   
   ;不指定类型时默认 DWORD(在 Win32 下)
   LOCAL v4
   
   ;数组
   LOCAL v5[3]: dword
   
   ;在手动初始化前, 局部变量中都是些垃圾值:
    PrintDec v1
    PrintDec v2
    PrintDec v3
    PrintDec v4
    mov eax, v5[0]
    PrintDec eax
    ret

main endp
end
main

----------------------------------------------------------------------------------------------------------------
理论上应该输出垃圾值才对     但是并不是这样

v1 = 0 (Test.asm, 52)
v2 = 0 (Test.asm, 53)
v3 = 0 (Test.asm, 54)
v4 = 0 (Test.asm, 55)
eax = 0 (Test.asm, 57)

全部为0了  - -

由于DumpMem不支持局部变量   我到debug.inc文件中找到了这个宏实现的语句  实际上是调用了HexDump2这个函数

测试一个局部变量  得到结果

0018FF84 : 00 00 00 00 - 00 00 00 00 - 00 00 00 00 - 00 00 00 00
00000004 : BYTES TOTAL

okay   全部Zero了   难道RadASM帮我们把变量都初始化了么?

测试data?同样是这样

main proc
    LOCAL val:DWORD
    invoke HexDump2,addr val,4
 ret
main endp

Win32ASM学习[3]:局部变量相关推荐

  1. Java学习笔记——局部变量和成员变量

    声明:本文首发于我的个人微信公众号[Java编程社区],查看更多文章与学习资源请移步我的公众号Java编程社区 成员变量:定义在类中的变量. 局部变量:定义在方法中的变量. 成员变量与局部变量的区别: ...

  2. Win32ASM学习[23]:RadASM快捷键

    RadASM快键操作 一.书签 SHIFT+F8为所在行下书签或删除书签(Crtl+0-9能定义存于文件中的10个书签), 可通过编辑\书签\开关书签.(CRTL+F8为下一书签,F8为上一书签) 二 ...

  3. Win32ASM学习[21]:宏汇编(1)

    ---------------------------------------------------------------------------------------------------- ...

  4. Win32ASM学习[6]: PTR、OFFSET、ADDR、THIS

    PTR: 指定要操作的数据尺寸 ------------------------------------------------------------------------------------ ...

  5. Win32ASM学习[5]: 数据对齐相关的伪指令(ALIGN、EVEN、ORG)

    32 位的寄存器容量是 4 字节, 如果内存中的数据都按 4*n 字节对齐, 肯定会加快吞吐速度; 但事实并非如此, 不同大小的数据可能会让寄存器别别扭扭地去处理, 从而降低了运行速度! 如果使用对齐 ...

  6. Win32Asm学习笔记[不断更新]

    Win32Asm程序框架: .386 ;告诉编译器程序所使用的指令集 .MODEL Flat, STDCALL   ;内存模式只有FLAT一种,函数调用方式为STDCALL,WIN32只有这一种 .D ...

  7. Win32ASM学习[20]:子程序

    关于函数调用约定 :函数调用约定 这是以前的一个求和函数的例子 -------------------------------------------------------------------- ...

  8. Win32ASM学习[19]:结构与联合

    结构和联合分别用 struct.union 定义, 都是 ends 结束定义. 它们使用方法相同, 并可以互相嵌套; 主要区别是后者的各成员共用同一个地址. --------------------- ...

  9. Win32ASM学习[17]:条件跳转

    ---------------------------------------------------------------------------------------------------- ...

最新文章

  1. 【转】无法将notepad++添加到打开方式列表中的解决办法
  2. GuozhongCrawler系列教程 (4) StartContext具体解释
  3. 如何运用UIControl自定义iOS中的控件
  4. Android 开发工具类 13_ SaxService
  5. (网络编程)UDP实现聊天
  6. AV1为何有信心打败H.265?
  7. mac mysql my.cnf_mac 增加 my.cnf
  8. mysql免安装出现1067_mysql,免安装,1067错误
  9. JSON解析工具比较,主要GSON和FastJSON
  10. double取两位小数_Java语言中:float、double数据类型在内存中是如何存储的
  11. mysql中表结构语句_mysql中表数据与表结构复制语句
  12. 最详细的L298N模块使用说明
  13. SoapUI接口测试——添加断言(检查点)——Assertion
  14. 对个人来说,最好的记账方法是什么?
  15. Java实现 LeetCode 215. 数组中的第K个最大元素
  16. k8s搭建--裸机搭建(Bare Metal)
  17. “校园舆情监测系统”网站设计及网页编辑总结
  18. 腾讯云服务器5M带宽的实际下载/上传速度是多少?
  19. Matlab矩阵的定义与构建
  20. 光伏行业逆变器企业应该如何生存?

热门文章

  1. python简单实用案例_Ajax的简单实用实例代码
  2. 前端面试题之http/HTML/浏览器(一)
  3. docker安装pocbox(漏洞测试验证辅助平台)
  4. 搭建xss-platform平台
  5. node.js 搭建http调取 mysql数据库中的值
  6. flex实现水平居中和两栏布局
  7. axios请求超时,设置重新请求的完美解决方法
  8. 启动LINUX下的TFTP服务器
  9. “景驰科技杯”2018年华南理工大学程序设计竞赛 A. 欧洲爆破(思维+期望+状压DP)...
  10. JavaScript封装方法,兼容参数类型为Number和String