图解Win32汇编字符串和Debug输出

1 使用PrintString宏输出字符串

.386
.model flat,stdcall

option  casemap:none

include W:\masm32\include\windows.inc
include W:\masm32\include\kernel32.inc
include W:\masm32\include\masm32.inc
include W:\masm32\include\debug.inc
includelib W:\masm32\lib\kernel32.lib
includelib W:\masm32\lib\masm32.lib
includelib W:\masm32\lib\debug.lib

.data
    v1 db 'DAYE1 DAYE2', 0
    v2 db "DAYE3 DAYE4", 0
    v3 db 'A', 'B', 'C', 'D', 'E', 'F', 'G', 0
    v4 db 'BAIDU', 'SOHU', 0
    v5 db 35, 36, 37, 38, 39, 40, 41, 0
    v6 db 'A', 'A'+1, "C", 44h, 105o, 70, 1000111b, 0
.code
start:
    PrintString v1  ;ABCDEFG
    PrintString v2  ;ABCDEFG
    PrintString v3  ;ABCDEFG
    PrintString v4  ;ABCDEFG
    PrintString v5  ;ABCDEFG
    PrintString v6  ;ABCDEFG
    ret
end start

运行结果如下;

为什么会有这个弹出窗口呢;看下PrintString宏的定义;在debug.inc中;

此宏又调用了DebugPrint,DebugPrint是个什么,在哪里定义的,一时没发现,下次再搞;

2 使用PrintText宏直接输出字符串

 

3 使用PrintLine输出横线

4 使用Spy跟踪变量

构建成功;但是执行exe,不会有任何输出;这个Spy宏,下次再搞;

5 使用CTEXT宏直接输出字符串

.386
.model flat,stdcall

option  casemap:none

include W:\masm32\include\windows.inc
include W:\masm32\include\kernel32.inc
include W:\masm32\include\user32.inc
include W:\masm32\include\debug.inc
includelib W:\masm32\lib\kernel32.lib
includelib W:\masm32\lib\user32.lib
includelib W:\masm32\lib\debug.lib
  
.code
start:
    invoke MessageBox, NULL, CTEXT("Hello World!"), CTEXT("Hello"), MB_OK
    invoke ExitProcess, NULL    
    ret
end start

参阅

https://www.cnblogs.com/del/archive/2010/04/04/1704160.html
https://www.cnblogs.com/del/archive/2010/04/04/1704296.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值