利用RadASM 写汇编程序

article/2025/11/5 10:56:49

    本文介绍利用RedASM写一个messageBox “hello world”.

    RadAsm 是我用过最爽的一个汇编Ide了, 代码高亮,智能提示……

    RadASM支持多种不同的汇编编译器,这里我们选择MASM.既然是IDE了,创建工程就很简单了, 文件->Win32 App(no res)->名字“MessageBox,”一路Next.

QQ截图未命名

然后呢,我们写下如下的汇编程序:

 
1 Title: Hello world
2 ;Author: sld6666666@gmail.com
3 ;Data: 2010 - 11 - 05
4 ;Description: Assemble hello world
5 . 386 ;该程序对CPU的最低要求是intel 386
6 .model flat, stdcall ; 平坦内存模型, stacll 函数调用方式
7 .stack 4096 ;栈的大小为4096B
8 option casemap:none
9 ;include 头文件, 连接库
10 include windows.inc
11 include kernel32.inc
12 include user32.inc
13 includelib kernel32.lib
14 includelib user32.lib
15 .data ;数据段
16 sztitle db " hello " , 0 ; 0 很重要, 因为是0结尾
17 szText db " Hello world " , 0
18 .code ;这里是代码区域
19 main proc ;proce 表示程序的开始
20 invoke MessageBox,NULL, offset szText, ;invoke 关键字表明这个是从其他库导入的
21 offset sztitle,
22 MB_OK
23 invoke ExitProcess,NULL
24 ret ;程序返回
25 main endp ;endp表示proc过程的结束
26 end main ;end 表明该行是汇编程序的最后一行

就OK了。

这里附上效果图,供大家参观:

QQ截图未命名2

这里再补一个hello world 的控制台程序

 
1 . 386 ;该程序对CPU的最低要求是intel 386
2 .model flat, stdcall ; 平坦内存模型, stacll 函数调用方式
3 .stack 4096 ;栈的大小为4096B
4 option casemap:none
5
6 include windows.inc
7 include kernel32.inc
8 includelib kernel32.lib
9
10 .data
11
12 inchar DB ?
13 numwritten DD ?
14 numread DD ?
15 outhandle DD ?
16 inhandle DD ?
17 strHello DB " Hello World! "
18
19
20 .code
21 main proc
22 invoke AllocConsole
23 invoke GetStdHandle,STD_OUTPUT_HANDLE
24 mov [outhandle],eax
25 invoke GetStdHandle,STD_INPUT_HANDLE
26 mov [inhandle],eax
27 invoke WriteConsole,[outhandle], offset strHello, 12 ,numwritten, 0
28 invoke ReadConsole,[inhandle],inchar, 1 ,numread, 0
29 invoke ExitProcess, 0
30
31 main endp
32 end main

来一个更简单的:

 
1 . 386
2 .model flat, stdcall
3 option casemap :none
4
5 include windows.inc
6 include kernel32.inc
7 include masm32.inc
8
9 includelib kernel32.lib
10 includelib masm32.lib
11
12 .data
13 helloWorld db " hello world " , 0
14
15 .code
16 start:
17 invoke StdOut, addr helloWorld
18 invoke ExitProcess, 0
19
20 end start

转载于:https://www.cnblogs.com/sld666666/archive/2010/11/14/1877260.html


http://chatgpt.dhexx.cn/article/ISXDgwv6.shtml

相关文章

srand和rand详细讲解

srand 使用srand引用头文件#include<stdlib.h> 在rand调用之前设置srand&#xff0c;若不设置当rand调用时随机数种子默认为1&#xff0c;随机数种子一样则每次打印出来的值也是一样的。 设置srand srand( (unsigned int )time(NULL) ) 如上所示&#xff0c;我们给一个持…

RadASM with Masm32

1.下载RadASM 从http://www.oby.ro/rad_asm/ 处下载 或http://www.assembly.com.br/ //这个是官网 1.RadASM 2.2.1.6 (09-April-2009) 2.RadASM Assembly programming (07-08-2008) 第一个是编译器 第二个是官网自带的编译配置辅助文件 2.下载MASM 从…

windows10_64位环境下RadAsm的8086汇编语言程序

前言&#xff1a; 当我们在win10环境下使用RadAsm编写汇编时&#xff0c;发现并不能够运行&#xff0c;因为Win64已经废弃了对16位程序的支持&#xff0c;甚至连debug都废除了。而且使用虚拟机太麻烦&#xff0c;有两种解决方案: 方法一&#xff1a;第一种是linux环境下使用命…

在64位系统下,使用 RadASM IDE 写 32 位及 16 位的汇编程序

一&#xff0e; 解压压缩包 二&#xff0e; 打开解压出的文件夹 三&#xff0e; 解压下图两个文件 四&#xff0e; 移动下图的文件夹&#xff08;DOSBox-0.74&#xff09;到你想放置的位置 五&#xff0e; 运行下图程序 下一步 我同意 下一步&#x…

汇编工具安装二:RadASM的安装!

已经配置好的汇编工具下载地址&#xff1a;http://download.csdn.net/detail/sunylat/9189543 RadASM也是一款汇编开发工具&#xff0c;网址&#xff1a;http://www.oby.ro/rad_asm/ 这个工具我也是偶然知道的&#xff0c;今天简单试用了一下&#xff0c;我觉得不错&#xff01…

图解RadASM使用初步

RadASM是一个主要用于Win32汇编的开发工具&#xff0c;也有对其他语言的支持&#xff1b; 此工具提供的方便相当多&#xff1b; 1 安装 2 自带例程 3 部分自带工具 ascii码表 颜色工具&#xff1b; 自带教程&#xff1b; 工具栏制作器&#xff1b; 自带代码片段&#xff1b;…

【汇编语言】汇编实验IDE(集成开发环境):RadASM的安装和使用说明

0 前言 本文适合8086CPU的指令集。 对于重要的专业基础课程&#xff0c;汇编语言&#xff0c;做实验是必不可少的&#xff0c;但是由于汇编语言本身的缺陷&#xff0c;现代计算机并不能直接运行汇编语言程序&#xff0c;因此&#xff0c;一般老师会要求我们 使用虚拟机&…

32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式

32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式 一丶RadAsm的配置和使用 用了怎么长时间的命令行方式,我们发现了几个问题 1.没有代码提醒功能 2.编写代码很慢,记不住各种声明 那么现在有大神,已经帮我们做了一个IDE环境,就是RadAsm,首先简单介绍一下界面 (对于这…

python3——写文件默认的编码格式 GBK~cp936

用python3写文件的时候没有指定编码模式&#xff0c;其默认使用的是encoding‘cp936’ 微软的CP936通常被视为等同GBK&#xff0c;连 IANA 也以“CP936”为“GBK”之别名。不过实际上 GBK 定义的字符比 CP936 多出95个字&#xff0c;其中包括了15个非汉字及80个汉字。 所以小…

Configuration file contains invalid cp936 characters in C:\Users\xxx\pip\pip.ini.

在按照网上的教程配置过pip.ini之后&#xff0c;使用install命名进行导包&#xff0c;导包不成功&#xff0c;提示这个&#xff1a; Configuration file contains invalid cp936 characters in C:\Users\wangli66\pip\pip.ini. 这是我配置的文件&#xff1a; [global] index…

PL3369CE

PL3369CE是一款原边控制&#xff0c;用于反激式开关电源的恒流/恒压调节器。PL3369CE高度集成了功率开关&#xff0c;并通过去除光耦以及次级控制电路&#xff0c;在简化充电器/适配器等传统的恒流/恒压设计的同时实现了精确的电流和电压调节。PL3369CE的复合模式的应用使芯片能…

TexLive安装报错does not map to cp936

TexLive解压后安装&#xff0c;如果存放在有中文名的文件夹中&#xff0c;就会出现如下报错&#xff1a;xxx does not map to cp936 at xxx/install-menu-extl.pl line 111. in vars section 解决方法&#xff1a;直接将解压好的文件剪切到不含中文的文件夹中&#xff08;比如直…

Configuration file contains invalid cp936 characters in C:\Users\YWX\pip\pip.ini. 已解决!

项目场景&#xff1a; python pip安装国内镜像源报错问题&#xff01; 问题描述 在C:\Users\YWX\pip 配置好镜像源后 在cmd安装出现&#xff1a; 原因分析&#xff1a; 在pip.ini 配置文件里存在注释符号 解决方案&#xff1a; 把注释去掉&#xff0c;保存&#xff01; &g…

ubuntu 截图快捷键设置

转载于:https://www.cnblogs.com/WhiteHorseIsNotHorse/p/8554312.html

ubuntu-ubuntu16.04截屏

默认&#xff1a; 对整个屏幕截图&#xff1a; PrintScreen 对活动窗口截图&#xff1a; AltPrintScreen 对任意矩形截图&#xff1a; ShiftPrintScreen 以上三个快捷键再加上Ctrl&#xff0c;就会默认复制截图到粘贴板 在系统设置里可以更改快捷键设置&#xff1a; 系统设置-硬…

Ubuntu设置快捷键截图

单击桌面右上角的设置然后点击系统设置&#xff1a; 单击键盘选项&#xff1a; 选择快捷键&#xff1a; 选择截图-复制选区截图到剪贴板&#xff0c;然后输入你想设置的快捷键&#xff1a; 这样方便多了&#xff0c;做个记录。

Ubuntu 自带截图工具快捷键盘

PrtSc – 获取整个屏幕的截图并保存到 Pictures 目录。 Shift PrtSc – 获取屏幕的某个区域截图并保存到 Pictures 目录。 Alt PrtSc –获取当前窗口的截图并保存到 Pictures 目录。 Ctrl PrtSc – 获取整个屏幕的截图并存放到剪贴板。 Shift Ctrl PrtSc – 获取屏幕的某个…

ubuntu 20.04截图快捷键

按鍵位置&#xff1a; 截屏键&#xff1a; Pirnt Screen截圖快捷鍵&#xff1a; Print Screen截取整个桌面Alt Print Screen截取选中的窗口––Shift Print Screen自由选区––Alt Print Screen截取选中的窗口––Ctrl Print Screen剪贴板整个桌面––Ctrl Alt Print …

Ubuntu截图软件flameshot命令行下载

截图软件flameshot命令行下载 一、安装二、命令行截图三、设置自定义快捷键 一、安装 sudo apt-get install flameshot二、命令行截图 flameshot gui三、设置自定义快捷键 设置——键盘快捷键—— “”

Ubuntu 桌面截屏(或截图)的方式

前言 刚开始接触Ubuntu 桌面&#xff0c;想要截屏&#xff08;截图&#xff09;&#xff0c;发现不知道咋办&#xff0c;经过查找后&#xff0c;此介绍两种方法来截图。 方法一&#xff1a; Ubuntu系统自带的截图工具 在Ubuntu的应用软件中心搜索 截图 &#xff0c;一般都是…