Thanks to visit codestin.com
Credit goes to github.com

Skip to content

luowei/radasm-sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RadASM汇编程序示例集

项目简介

这是一个使用RadASM集成开发环境编写的汇编语言示例项目集合。包含了Win32汇编编程的多个实践案例,涵盖了从简单的中断程序到保护模式编程,以及使用RadASM开发Windows桌面应用程序的完整示例。

技术栈

  • 开发工具: RadASM (汇编语言集成开发环境)
  • 编程语言:
    • Win32 Assembly (MASM32)
    • x86汇编语言
    • C语言(部分工具)
  • 汇编器: MASM (Microsoft Macro Assembler)
  • 架构: x86/x86-64
  • 操作系统: Windows

功能特性

1. 保护模式编程示例

  • Boot.asm - 启动引导程序,进入保护模式
  • BootFile.asm - 引导文件加载
  • HelloWorld.asm - 保护模式下的Hello World
  • WrtBoot2FlpImg.c - 将引导程序写入软盘映像的工具

2. 中断程序示例

  • brk_test.asm - 简单的中断程序
  • brk_test2.asm - 进阶的中断处理程序
  • Hello.asm - 使用中断的Hello程序

3. Windows应用程序

  • 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程序)

安装和运行方法

1. 环境准备

# 下载并安装MASM32
# 下载地址: http://www.masm32.com/

# 下载并安装RadASM
# 下载地址: http://www.oby.ro/rad_asm/

# 配置环境变量
# 将MASM32的bin目录添加到系统PATH

2. 打开项目

记事本程序(MyNote01)

# 使用RadASM打开项目
# File -> Open Project -> 选择 MyNote01.rap

拾色器程序(Dlg_Test)

# 使用RadASM打开对应的.rap项目文件

3. 编译运行

在RadASM中编译

  1. 打开项目文件(.rap)
  2. 点击菜单 Make -> Assemble(F5)编译
  3. 点击菜单 Make -> Link(F6)链接
  4. 点击菜单 Make -> Run(F7)运行

命令行编译

# 进入项目目录
cd MyNote01(用RadASM开发记事本程序)

# 汇编
ml /c /coff MyNote01.Asm

# 链接
link /SUBSYSTEM:WINDOWS MyNote01.obj

# 运行
MyNote01.exe

4. 编译保护模式示例

# 编译Boot.asm
ml /c /coff Boot.asm
link /SUBSYSTEM:CONSOLE Boot.obj

# 编译C语言工具
cl WrtBoot2FlpImg.c

主要文件/模块说明

MyNote01 - 记事本程序

MyNote01.Asm (主程序)

  • 实现了完整的Windows记事本功能
  • 使用Win32 API创建窗口和菜单
  • 文件操作:打开、保存、另存为
  • 编辑功能:复制、粘贴、剪切
  • 使用Edit控件作为文本编辑器

主要功能

  • 新建/打开/保存文本文件
  • 文本编辑(支持撤销、重做)
  • 查找/替换功能
  • 字体设置
  • 打印支持

技术要点

  • Windows消息循环处理
  • 通用对话框(打开文件、保存文件)
  • 子窗口过程(Edit控件)
  • 资源文件管理

Boot.asm - 保护模式引导

  • 从实模式切换到保护模式
  • 设置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库

学习要点

  1. Win32汇编编程基础

    • Windows程序结构
    • 消息循环机制
    • API函数调用
  2. RadASM使用

    • 项目管理
    • 资源编辑
    • 调试技巧
  3. 保护模式编程

    • GDT设置
    • 段描述符配置
    • 模式切换
  4. 中断编程

    • 中断向量表
    • 中断处理程序
    • 硬件中断vs软件中断

其他相关信息

RadASM优势

  • 专为汇编语言设计的轻量级IDE
  • 集成资源编辑器
  • 代码高亮和智能提示
  • 项目管理功能
  • 支持多种汇编器(MASM、TASM、NASM等)

适用场景

  • 学习Win32汇编编程
  • 理解操作系统底层原理
  • 系统级程序开发
  • 逆向工程学习

学习资源

  • 《Windows环境下32位汇编语言程序设计》
  • 《Win32汇编程序设计》
  • MASM32官方文档
  • RadASM官方教程

注意事项

  • 汇编代码平台相关性强,仅支持x86/x86-64 Windows
  • 需要对Windows API有一定了解
  • 代码中包含中文注释(可能存在编码问题)
  • 建议在虚拟机中测试保护模式代码

About

radasm-sample... 用RadASM开发的一些示例汇编语言程序...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published