这是一个使用RadASM集成开发环境编写的汇编语言示例项目集合。包含了Win32汇编编程的多个实践案例,涵盖了从简单的中断程序到保护模式编程,以及使用RadASM开发Windows桌面应用程序的完整示例。
- 开发工具: RadASM (汇编语言集成开发环境)
- 编程语言:
- Win32 Assembly (MASM32)
- x86汇编语言
- C语言(部分工具)
- 汇编器: MASM (Microsoft Macro Assembler)
- 架构: x86/x86-64
- 操作系统: Windows
- Boot.asm - 启动引导程序,进入保护模式
- BootFile.asm - 引导文件加载
- HelloWorld.asm - 保护模式下的Hello World
- WrtBoot2FlpImg.c - 将引导程序写入软盘映像的工具
- brk_test.asm - 简单的中断程序
- brk_test2.asm - 进阶的中断处理程序
- Hello.asm - 使用中断的Hello程序
- MyNote01 - 使用RadASM开发的记事本程序
- Dlg_Test - RadASM编写的拾色器对话框程序
radasm-sample/
├── (保护模式下编程)Boot.asm # 保护模式启动程序
├── (保护模式下编程)BootFile.asm # 引导文件
├── (保护模式下编程)HelloWorld.asm # 保护模式Hello World
├── (保护模式下编程)WrtBoot2FlpImg.c # 引导写入工具
├── (一个简单的中断程序)brk_test.asm # 中断测试1
├── (一个简单的中断程序)brk_test2.asm # 中断测试2
├── (一个简单的中断程序)Hello.asm # 中断Hello
├── MyNote01(用RadASM开发记事本程序)/ # 记事本应用
│ ├── MyNote01.Asm # 主程序源码
│ ├── MyNote01.Rc # 资源文件
│ ├── MyNote01.Inc # 包含文件
│ ├── MyNote01.rap # RadASM项目文件
│ └── Res/ # 资源目录
└── Dlg_Test(RadASM编写拾色器)/ # 拾色器对话框
└── ... # 对话框程序文件
- RadASM: 汇编语言集成开发环境
- MASM32: Microsoft Macro Assembler 32位版本
- Windows操作系统: Windows XP及以上
- MASM汇编器
- Link链接器
- RC资源编译器(用于GUI程序)
# 下载并安装MASM32
# 下载地址: http://www.masm32.com/
# 下载并安装RadASM
# 下载地址: http://www.oby.ro/rad_asm/
# 配置环境变量
# 将MASM32的bin目录添加到系统PATH记事本程序(MyNote01)
# 使用RadASM打开项目
# File -> Open Project -> 选择 MyNote01.rap拾色器程序(Dlg_Test)
# 使用RadASM打开对应的.rap项目文件在RadASM中编译
- 打开项目文件(.rap)
- 点击菜单 Make -> Assemble(F5)编译
- 点击菜单 Make -> Link(F6)链接
- 点击菜单 Make -> Run(F7)运行
命令行编译
# 进入项目目录
cd MyNote01(用RadASM开发记事本程序)
# 汇编
ml /c /coff MyNote01.Asm
# 链接
link /SUBSYSTEM:WINDOWS MyNote01.obj
# 运行
MyNote01.exe# 编译Boot.asm
ml /c /coff Boot.asm
link /SUBSYSTEM:CONSOLE Boot.obj
# 编译C语言工具
cl WrtBoot2FlpImg.cMyNote01.Asm (主程序)
- 实现了完整的Windows记事本功能
- 使用Win32 API创建窗口和菜单
- 文件操作:打开、保存、另存为
- 编辑功能:复制、粘贴、剪切
- 使用Edit控件作为文本编辑器
主要功能
- 新建/打开/保存文本文件
- 文本编辑(支持撤销、重做)
- 查找/替换功能
- 字体设置
- 打印支持
技术要点
- Windows消息循环处理
- 通用对话框(打开文件、保存文件)
- 子窗口过程(Edit控件)
- 资源文件管理
- 从实模式切换到保护模式
- 设置GDT(全局描述符表)
- 配置段描述符
- 跳转到保护模式代码执行
brk_test.asm
- 演示基本的中断向量设置
- INT指令的使用
- 中断处理程序编写
brk_test2.asm
- 进阶中断处理
- 多个中断的协同工作
- 中断返回处理
项目使用MASM语法:
.586 ; 使用586指令集
.model flat,stdcall ; 平坦内存模型,stdcall调用约定
option casemap:none ; 大小写敏感
include windows.inc ; Windows头文件
include user32.inc ; User32 API
includelib user32.lib ; User32库-
Win32汇编编程基础
- Windows程序结构
- 消息循环机制
- API函数调用
-
RadASM使用
- 项目管理
- 资源编辑
- 调试技巧
-
保护模式编程
- GDT设置
- 段描述符配置
- 模式切换
-
中断编程
- 中断向量表
- 中断处理程序
- 硬件中断vs软件中断
- 专为汇编语言设计的轻量级IDE
- 集成资源编辑器
- 代码高亮和智能提示
- 项目管理功能
- 支持多种汇编器(MASM、TASM、NASM等)
- 学习Win32汇编编程
- 理解操作系统底层原理
- 系统级程序开发
- 逆向工程学习
- 《Windows环境下32位汇编语言程序设计》
- 《Win32汇编程序设计》
- MASM32官方文档
- RadASM官方教程
- 汇编代码平台相关性强,仅支持x86/x86-64 Windows
- 需要对Windows API有一定了解
- 代码中包含中文注释(可能存在编码问题)
- 建议在虚拟机中测试保护模式代码