首页 > 系统相关 >Windows编程:(一)汇编Hello World

Windows编程:(一)汇编Hello World

时间:2024-03-13 16:57:01浏览次数:31  
标签:汇编 exe obj Windows World main Hello

万事都讲究缘起,这次的缘起是要用WinDbg调试界面卡死。看不懂WinDbg的结果。以前都是靠猜,很受打击,索性学习一下。

主要学习了几个步骤:1. 什么是汇编?汇编的来龙去脉是啥?为什么需要汇编?它与C/C++有什么联系?2.跑一个汇编的Hello World。

前几个问题,我就直接摘抄了。

着重说一下跑Hello World,是跑通,不是编写。

1. 找一个汇编的Hello World。相信我,这个并不容易。程序虽多,满足我苛刻要求的需要仔细筛选。我需要:Windows,x64的。网上多是Linux的,或者x86。

;-----------------------------------
;Descr  : My First 64-bit MASM program
;ml64 prog.asm /c
;golink /console /entry main prog.obj msvcrt.dll, or
;gcc -m64 prog.obj -o prog.exe (main/ret). This needs 64-bit GCC.
;-----------------------------------
extrn printf:proc
extrn exit:proc

.data
hello db 'Hello 64-bit world!',0ah,0

.code
main proc

        mov     rcx,offset hello
        sub     rsp,20h
        call    printf
        add     rsp,20h

        mov     rcx,0
        call    exit

main endp
end
View Code

 

2. 使用ML64.exe编译生产obj文件。因为我安装了Visual Studio,不想另外安装MASM了。

命令如下:

ml64.exe /Fo HelloWorld.obj /c HelloWorld.asm

这里的注意事项是,要启动Visual Studio的64位命令行,截图如下:

  

3. 使用x64的gcc链接生产exe文件

命令如下:

gcc -m64 HelloWorld2.obj -o HelloWorld2.exe

 4. 执行EXE

命令如下:

HelloWorld.exe

 

标签:汇编,exe,obj,Windows,World,main,Hello
From: https://www.cnblogs.com/ceachy/p/18070410/AsmHello

相关文章

  • yii2+rabbitmq实现队列(windows)
    1.安装Erlang官方网站,https://erlang.org/download/otp_versions_tree.html,选择和rabbitmq适配的2.安装RabbitMQ官方网站,windows:https://www.rabbitmq.com/docs/install-windows3.安装下载的Erlang和RabbitMQ 碰到的问题:1.开启rabbitmq服务时dos窗口一闪而逝,看了服务进程......
  • 几款 Windows 开源小工具
    目录MyComputerManager功能介绍使用方法Win11恢复到win10的右键菜单软件介绍使用方法ContextMenuManager下载说明everythingMyComputerManager管理“此电脑”里删不掉的流氓“快捷方式”(包括侧边栏),同时可自己添加这类“快捷方式”Github项目地址:https://github.com/13573107......
  • Windows Server 各版本搭建终端服务器实现远程访问(03~19)
    一、WindowsServer2003左下角开始➡管理工具➡管理您的服务器,点击添加或删除角色点击下一步 勾选自定义,点击下一步蒂埃涅吉终端服务器,点击下一步 点击确定重新登录后点击确定点击开始➡管理工具➡计算机管理,展开本地用户和组,点击组可以发现有个组关门用来远程......
  • Emgu.CV.Runtime.Windows nuget 安装失败问题解决方案
    一、错误现象我正在尝试从VisualStudio2015中安装emgu.CV.runtime.windows,并通过右键单击引用并通过NuGet安装的推荐方法进行安装。但是我收到以下错误。无法安装包“Emgu.runtime.windows.msvc.rt.x6419.28.29336”。您正在尝试将此包安装到面向.NETFramework,Versio......
  • 适用于 Windows 的 5 款最佳免费数据恢复软件
    每个计算机用户都曾经历过数据丢失的情况。很容易错误地删除重要的文件和文件夹,当发生这种情况时,可能会导致不必要的心痛和压力。值得庆幸的是,可以恢复WindowsPC上丢失的数据。在本文中,我们将分享您可以使用的五种最佳Windows7/8/10/11免费数据恢复软件选项。适用于Wi......
  • 在 Windows 10/11 上哪里可以找到已删除的文件
    “在Windows10/11上哪里可以找到已删除的文件?”。事实上,这个问题有3种可能的答案。1.它们在回收站里。2.它们被删除并可以使用文件恢复工具恢复,例如奇客数据恢复。3.它们被永久删除,您永远找不到它们。尝试最好的已删除文件恢复软件来查找您需要的文件。否则,您可能会永久......
  • Windows编程系列:远线程注入
    远线程注入远线程(RemoteThread)注入是指一个进程在另一个进程中创建线程的技术,这是一种很经典的DLL注入技术。虽然比较古老,但是很实用。通过远线程注入,再配合api函数的hook技术,可以实现很多有意思的功能。  实现远线程注入的关键函数OpenProcess打开现有的本地进程,函数......
  • 实验案例:使用Windows 10桌面系统
    1、实验环境      BDON公司刚刚招聘了一位新入职员工小张。部门经理要求系统管理员带小张快速地熟悉公司环境以尽快上手工作,系统管理员为小张的计算机安装了Windows1o操作系统以后,需要小张进一步熟悉公司的Windows10桌面环境及使用系统的基本操作,以便更好地实......
  • Qt 安装与环境变量的设置(Windows 10)
    Qt安装与环境变量的设置(Windows10)Qt下载Qt下载地址我下载的是windowQt5.13.1下载后安装,安装过程很简单,中间需要注册一个qt的账户,按步骤来即可组件选择了MinGW73_32、MinGW73_64、MSVC2017_32和MSVC2017_64环境变量设置打开此电脑的属性选择高级系统设置打开环境......
  • Windows右键菜单管理程序:ContextMenuManager
    前言ContextMenuManager是一款由中国人开发免安装的纯粹的Windows右键菜单管理开源程序,可以非常方便的管理Windows电脑的右键菜单,轻松去除不必要的或者是流氓的菜单选项,使你的电脑更加的干净、清爽。程序使用非常简单,没有任何门槛,我感觉非常棒,极力推荐道友们下载使用。Github......