首页 > 其他分享 >FASM之HelloWorld

FASM之HelloWorld

时间:2024-05-28 12:11:49浏览次数:27  
标签:code FASM HelloWorld hello fasm World line Hello

1. 环境准备

下载汇编器fasmflat assembler 1.73.32 for Windows

配置环境变量:

  • fasm安装路径添加至pathD:\dev_tools\fasm\fasmw17332
  • 设置INCLUDE变量:D:\dev_tools\fasm\fasmw17332\INCLUDE

2. 编写代码

创建hello.asm

format PE console
entry start

include 'win32a.inc'

;======================================
section '.data' data readable writeable
;======================================

hello_newline    db "Hello World!",10,0
hello_no_newline db "Hello World! (without a new line)",0

;=======================================
section '.code' code readable executable
;=======================================

start:

        ccall   [printf],hello_newline      ; Print 'Hello World!' and start a new line.
        ccall   [printf],hello_no_newline   ; Print 'Hello World!' without starting a new line.

        ccall   [getchar]                   ; I added this line to exit the application AFTER the user pressed any key.
        stdcall [ExitProcess],0             ; Exit the application

;====================================
section '.idata' import data readable
;====================================

library kernel,'kernel32.dll',\
        msvcrt,'msvcrt.dll'

import  kernel,\
        ExitProcess,'ExitProcess'

import  msvcrt,\
        printf,'printf',\
        getchar,'_fgetchar'

3. 代码运行

命令行窗口运行:

F:\code-work\code-test\fasm>fasm hello.asm
flat assembler  version 1.73.32  (1048576 kilobytes memory)
3 passes, 0.1 seconds, 2048 bytes.

F:\code-work\code-test\fasm>hello.exe
Hello World!
Hello World! (without a new line)

fasm hello.asm 编译并链接生成可运行程序hello.exe

4. 参考

notepad++ 配置fasm汇编环境

FASM: Hello World (Windows/Console)

标签:code,FASM,HelloWorld,hello,fasm,World,line,Hello
From: https://www.cnblogs.com/yezhechenyang/p/18217654

相关文章

  • Java HelloWorld实现
    第一个博客,当然从HelloWorld开始,主要测试下CDDN的代码高亮效果如何。下面上代码:`packagecom.gzymz.demo;/**测试@authorAdministrator*/publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("HelloWorld,公子云梦泽!");}}`emm......
  • django添加路由访问helloworld
    一、应用层面路由配置:新建urls.py文件二、项目层路由配置 三、把应用添加到项目配置文件四、运行项目  运行成功......
  • HelloWorld
    随便建造一个文件夹,存放代码。建造一个Java文件文件后缀名为.JavaHello.java【要注意】系统可能没有显示文件名后缀,我们需要手动打开3.编写代码publicclassHello{ publicstaticvoidmain(String[]args){ System.out.print("Hello,World!"); }}编译jav......
  • 入门Semantic Kernel:OneApi集成与HelloWorld
    引言从这一章节开始正式进入我们的SemanticKernel的学习之旅了。什么是SemanticKernel?SemanticKernel是一个轻量级的开源框架,通过SemanticKernel可以快速使用不同编程语言(C#/Python/Java)结合LLMs(OpenAI、AzureOpenAI、HuggingFace等模型)构建智能应用,简化将人......
  • openwrt 编写一个helloworld程序
    第一步先创建目录,项目代码要放在openwrt根目下的 package 目录中,这里源码写在了hellworld的src目录下,因为外层还有需要编写的文件。mkdir-p~/openwrt/package/hellworld/srccd ~/openwrt/package/helloworld/src然后编写helloworld.c和源码下的Makefile文件touc......
  • 移植helloworld驱动模块到openwrt系统
    一、OpenWRT中的驱动  Openwrt源码中,所有扩展的软件包都在package目录下,自己添加的应用放在该目录下。  所有扩展的内核驱动都在package/kernel目录下,自己添加的驱动放在该目录下。二、添加驱动步骤在package/kernel目录下添加一个helloworld文件夹在helloworld添加一个Make......
  • 编译相关基础知识-探究helloWorld背后的原理
    1、filehello查看文件类型可以看到文件类型是x86_64,它是不能在ARM架构上运行的,因为它们的指令集不同。我们需要使用交叉编译工具比如arm-linux-gnueabihf-gcc来编译hello.c才能得到在ARM上运行的可执行文件可以看的此时是32bit,ARM架构上的可执行文件点击查看代码#includ......
  • 初学Java,HelloWorld
    1、开发三步骤1.1程序开发步骤说明        JDK安装完毕,可以开发我们第一个Java程序了。        Java程序开发三步骤:编写、编译、运行。1.2编写Java源程序保存.java源文件在电脑中目录新建文本文件,完整的文件名修改为HelloWorld.java,其中文件名为Hello......
  • 机器语言编写helloworld
    kvmtool下载编译gitclonehttps://github.com/kvmtool/kvmtool.git下载后进入到目录执行make即可。补码计算机怎么表示负数?以四位有符号数为例,使用高位作为符号位,最高位为0表示正数,为1表示负数,其余三位用来表示值。在计算机中,我们将这种表示方式称为原码。例如:十进制二......
  • 学习Source Generators之HelloWorld
    介绍源生成器是C#开发人员可以编写的一种新组件,允许执行两个主要操作:检索表示正在编译的所有用户代码的编译对象。可以检查此对象,并且可以编写适用于正在编译的代码的语法和语义模型的代码,就像现在使用分析器一样。生成可在编译过程中添加到编译对象的C#源文件。也就是......