Win32ASm学习[1]:RadASm下测试Debug

 

okay 

正文开始下面的代码如果不能编译  请把你的RadAsm下的Masm32这个文件夹复制到任意一个磁盘的根目录下,在进行编译就可以了

或者安装Masm32 SDK到任意磁盘根目录下

 

.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;Include Files
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include  windows.inc
include  user32.inc
include  kernel32.inc
includelib user32.lib
includelib kernel32.lib
include  debug.inc
includelib debug.lib
include  masm32.inc
includelib masm32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;Data  Segment
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
;变量必须是8~32位
v1  db  127
v2  db  -128
v3  dw  32767
v4  dw  -32768
v5  dd  2147483647
v6  dd  -2147483648
v7 real8 3.14
val dd 0
szText db 'ABCDEFG',0
num dd  13579ACEh
.const
szMessage db 'Hello world',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;Code  Segment
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
PrintLine;打印一条线
;--------------------------------------------------------------------------
;------------------------------输出字符串---------------------------------
;--------------------------------------------------------------------------
PrintString szMessage
;--------------------------------------------------------------------------
;------------------------------直接输出字符串-----------------------------
;--------------------------------------------------------------------------
PrintText 'Hello world'
;--------------------------------------------------------------------------
;--------------------------根据地址输出字符串----------------------------
;--------------------------------------------------------------------------
PrintStringByAddr offset szMessage
;--------------------------------------------------------------------------
;----------------PrintDec: 输出 8-32 位的十进制整数----------------------
;--------------------------------------------------------------------------
PrintLine
PrintDec v1
PrintDec v2
PrintDec v3
PrintDec v4
PrintDec v5
PrintDec v6,'还可以接受第2个文本参数哦'
;--------------------------------------------------------------------------
;------------------------------输出16进制--------------------------------
;--------------------------------------------------------------------------
PrintLine
PrintHex v1
PrintHex v2
PrintHex v3
PrintHex v4
PrintHex v5
PrintHex v6
;--------------------------------------------------------------------------
;------------------------------输出双精度浮点数--------------------------
;--------------------------------------------------------------------------
PrintLine
PrintDouble v7,'Double'
;--------------------------------------------------------------------------
;------------------------------跟踪变量-----------------------------------
;--------------------------------------------------------------------------
PrintLine
Spy val
mov val, 2  ;2
add  val, 3  ;5
sub  val, 1  ;4
shl   val, 1  ;8
StopSpy
;--------------------------------------------------------------------------
;------------------------------查看内存------------------------------------
;--------------------------------------------------------------------------
PrintLine
DumpMem offset szText, 4  ;41 42 43 44
DumpMem offset szText, 7  ;41 42 43 44 45 46 47
DumpMem offset num, 4     ;CE 9A 57 13
;它也可以有个文本参数
DumpMem offset num, 4, 'txt'
;--------------------------------------------------------------------------
;--------------------查看内存:类似于DumpMem-但更加适合查看文本------------
;--------------------------------------------------------------------------
PrintLine
DbgDump offset szText, 4     ;41 42 43 44 - ABCD
DbgDump offset szText, 7     ;41 42 43 44 45 46 47 - ABCDEFG
DbgDump offset num, 4        ;CE 9A 57 13
;它也可以有个文本参数
DbgDump offset num, 4, 'txt'
PrintLine
;--------------------------------------------------------------------------
;需要注意的是 debug.inc 提供的这些宏指令都是区分大小写的.
;还有更多指令可参见帮助: \RadASM\masm32\help\VKDebug.chm(帮助内容不是很全)
;或直接查看 \RadASM\masm32\include\debug.inc
;--------------------------------------------------------------------------
;它还包括一个非常有用的宏 CTEXT,这在用invoke调用有字符串参数的函数时非常方便.
;使用 CTEXT 可以把前面那个 "最简单的 Win32 程序" 修改如下:
;--------------------------------------------------------------------------
invoke MessageBox,NULL,CTEXT("Hello World"),CTEXT("Hi"),MB_OK
invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
end start


 

最后输出结果------

----------------------------------------
szMessage = Hello world (MyApp.asm, 48)
Hello world (MyApp.asm, 52)
offset szMessage = Hello world
----------------------------------------
v1 = 127 (MyApp.asm, 61)
v2 = -128 (MyApp.asm, 62)
v3 = 32767 (MyApp.asm, 63)
v4 = -32768 (MyApp.asm, 64)
v5 = 2147483647 (MyApp.asm, 65)
v6 = -2147483648, 还可以接受第2个文本参数哦 (MyApp.asm, 66)
----------------------------------------
v1 = 7F (MyApp.asm, 71)
v2 = 80 (MyApp.asm, 72)
v3 = 7FFF (MyApp.asm, 73)
v4 = 8000 (MyApp.asm, 74)
v5 = 7FFFFFFF (MyApp.asm, 75)
v6 = 80000000 (MyApp.asm, 76)
----------------------------------------
v7 = 3.14, Double (MyApp.asm, 81)
----------------------------------------
Spied variable = 2
Spied variable = 5
Spied variable = 4
Spied variable = 8
----------------------------------------
0040401A : 41 42 43 44 - 00 00 00 00 - 00 00 00 00 - 00 00 00 00
00000004 : BYTES TOTAL
0040401A : 41 42 43 44 - 45 46 47 00 - 00 00 00 00 - 00 00 00 00
00000007 : BYTES TOTAL
00404022 : CE 9A 57 13 - 00 00 00 00 - 00 00 00 00 - 00 00 00 00
00000004 : BYTES TOTAL
txt (MyApp.asm, 100)
00404022 : CE 9A 57 13 - 00 00 00 00 - 00 00 00 00 - 00 00 00 00
00000004 : BYTES TOTAL
----------------------------------------
0040401A:  41 42 43 44-            -           -             ABCD............
0040401A:  41 42 43 44-45 46 47   -           -        ABCDEFG.........
00404022:  CE 9A 57 13-           -           -              螝W.............
00404022:  CE 9A 57 13-           -           -              螝W.............
----------------------------------------


 

 

哈哈  比较方便了吧    这样在调试的时候就比较方便了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于javascript闭包

1.闭包的概念 闭包就是能够读取其他函数内部变量的函数。 由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。 所以,在本质上,闭包就是将函数内部和函数外部连…

Win32ASM学习[2]:运算符

算术运算符 名称 优先级 () 圆括号 1 ,- 正、负 2 *,/ 乘、除 3 MOD 取模 3 ,- 加、减 4 ------------------------------------------------------------------------------------------------------------------------------------------ .386 .mo…

正式入住了

从13年开始从事iOS开发工作,就准备写一些东西,记录这一路学习工作之旅,但是总是想着坚持不下来,也就慢慢的放弃了,开始用一些记笔记的软件,印象笔记用过,个人体验比较差,后来又用了OneNote,这个APP还是比较舒服,但是由于公司的老版mac-pro,无法使用,也就突然想起了,也是时候重出…

VRRP协议具体解释

转帖:http://blog.chinaunix.net/space.php?uid11654074&doblog&id2857384 Contents Page 文件夹 入木三分学网络…

Win32ASM学习[3]:局部变量

.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 …

WPF笔记(1.1 WPF基础)——Hello,WPF!

WPF笔记(1.1 WPF基础)——Hello,WPF! 原文:WPF笔记(1.1 WPF基础)——Hello,WPF!Example 1-1. Minimal C# WPF application//MyApp.csusingSystem;usingSystem.Windows; //the root WPF namespacenamespaceMyFirstAvalonApp { cla…

c#入门系列——类和对象的代码实现

面向对象 说起面向对象,大家因该都听说过,也知道是一个编程的方法,简称oop技术。它将对象的算法和数据结构看作一个整体,而一个程序就是由多个对象结合的整体。这样做可以提高代码的复用率,提高了软件的可维护性。 属性…

安卓TCP通信版本2

PC做服务器,安卓做客户端。 安卓获取输入框的内容并发送,然后等待接收服务器的消息 服务器先行开启,接收到客户端的数据,然后回复消息。 实现了对线程类的封装,通过按钮启动线程发送并接收 服务器代码(java…

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

32 位的寄存器容量是 4 字节, 如果内存中的数据都按 4*n 字节对齐, 肯定会加快吞吐速度; 但事实并非如此, 不同大小的数据可能会让寄存器别别扭扭地去处理, 从而降低了运行速度! 如果使用对齐, 就会浪费掉一些内存空间; 其实这是一个需要权衡 "速度" 与 "内存&…

常用Jquery前端操作

input只能输入正整数 οnkeyup"this.valuethis.value.replace(/\D/g,)"if(!confirm("删除后无法恢复,确认继续?")){return false;}//判断字符串里是否存在指定字符 if(str.indexOf("abc") ! -1){//表示存在}1.双引号替换…

【Linux/Ubuntu学习 10】unbuntu 下 eclipse 中文乱码的解决

wangddwdd-pc:~$ gedit /var/lib/locales/supported.d/local 添加: zh_CN.GBK GBKzh_CN.GB2312 GB2312 终端执行命令: sudo dpkg-reconfigure --force localesGenerating locales... en_AG.UTF-8... done en_AU.UTF-8... done en_BW.UTF-8... done …

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

PTR: 指定要操作的数据尺寸 ------------------------------------------------------------------------------------------------------------------------------------------ .386 .model flat, stdcall include windows.inc include kernel32.inc include masm…

简述WebService的使用(一)

环境: vs版本:vs2013 windows版本:win7 IIS版本:IIS7.0 (如果觉得对您有用,请点击右下角【推荐】一下,让更多人看到,谢谢) 配置环境: 主要针对于IIS 首先&…

【Java基础】用LinkedList实现一个简单栈的功能

栈的基本功能 栈的最基本功能是保障后进先出,然后在此基础上可以对在栈中的对象进行弹入弹出,此外,在弹出时,如果栈为空,则会报错,所以还需要提供获取当前栈大小的方法。 构造存储对象Student /*** Created…

Win32汇编学习[7]: 定义符号常量(=、EQU、TEXTEQU)

关于符号常量 的例子 .386 .model flat,stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .data n 1 ; 伪指令只能定义整数或整数表达式…

oracle 删除表中重复记录,并保留一条

1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(Id&#x…

透过WinDBG的视角看String

摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的. 本文将侧重在通过WinDBG来观察String在进程内的布局, 以此来解释C# String的一些特性. 问题 C# Stri…

Win32ASM学习[8]: 进制转换的库函数

在 masm32.inc 中有这样几个函数的声明: byt2bin_ex PROTO :BYTE, :DWORD wrd2bin_ex PROTO :WORD, :DWORD dw2bin_ex PROTO :DWORD, :DWORD dw2hex_ex PROTO :DWORD, :DWORD bin2byte_ex PROTO :DWORD -------------------------------------------------------------…

SOJ 2800_三角形

真的是O不是0【看了discuss才发现。。。。。一个大写的蠢 【题意】多个黑白三角形组成的倒三角,求白三角形组成的最大倒三角的面积 【分析】由于问的是倒三角个数,所以只需看与行数奇偶性相同的白色倒三角形,设v[i][j]为以第i行第j列的倒三角…

ueditor富文本编辑器 修改框宽度和高度的方法

在使用ueditor的时候&#xff0c;用的textarea <textarea name"content" id"myEditor">这里写这条规则的回复内容</textarea> 给它加style"width:300" 属性的时候&#xff0c;发现不起作用。 正确的方法应该是&#xff1a; <scri…