分类标签归档:汇编

汇编手记之第一个窗口程序


写在前面

我又来写汇编了,最近搞微信逆向搞的头大。
汇编的话,直接从书里抄代码还是轻松愉快,调用的基本是Windows API,也并不晦涩难懂。
而且,看着自己敲的代码在OD里一行一行的执行,瞬间觉得自己理解了编程的本质(雾)。
这样一个窗口程序,编译后只有2.5kb左右,不知道用C++实现编译出来会多大。

汇编代码

.386
.model flat,stdcall
option casemap:none
;-----------------------------------
; Include
;-----------------------------------
include win

Read more

汇编手记之子程序的使用


写在前面

记录结构体、宏定义、解引用指针、子程序以及局部变量的使用。

程序代码

使用masm32编译。
TestProc.asm

.386
.model flat,stdcall
option casemap:none

include windows.inc
include kernel32.inc
include user32.inc

includelib user32.lib
includelib kernel32.lib

include msvcrt.inc
includelib msvcrt.lib
;一个宏,可以实现类似cpp中的ifdef _DEBUG
DEBUG equ 0

Read more

汇编手记之HelloWorld


写在前面

上一篇文章写了nmake的使用,本篇来写一下汇编版本的helloworld。

源程序

注:除特别说明以外,本站的汇编代码均使用masm32编译。
helloworld.asm

.386                                                                    ; 允许使用的指令集
.model flat, stdcall                                                    ; 平坦寻址,标准函数调用约定
option casemap:none                 

Read more

汇编手记之nmake的使用


写在前面

最近在读罗云彬的《Windows环境下32位汇编语言程序设计》,书中推荐使用nmake进行编译,nmake和cmake、以及linux自带的make工具,基本都依赖于makefile,在此记录一下namke语法,方便后面查阅。
ps:nmake.exe是VS的附带工具之一,可以使用everything迅速查找。

makefile

#源文件
ASM = helloworld.asm
#生成的obj文件名
OBJS = helloworld.obj
#生成的exe文件名
EXE = helloworld.exe
#链接参数,如果不需要控制台窗口,将console改为windows
LIN

Read more