汇编基础之使用vscode写hello world

【小白图文详解】使用VScode进行8086汇编学习,目前最好的8086汇编学习环境搭建 1 前言 ​ 这学期要学习8086汇编,选择汇编的环境折腾了好几天,尝试过使用吾爱破解的OD反汇编工具【1】查看寄存器的状态,并进行的简单的汇编指令编写,但其界面复杂,对新手极其不友好,使用了几天就放弃了。于是我又尝试了比较正规(主要是汇编书籍里边他就是要你这么搭建编程环境)的8086汇编环境——DOSBox虚拟环境【2】,但但但是!!在这里我不得不说,这样的环境虽然比较正规(后面会介绍代替方案),如果你折腾过这个编程环境你会知道,代码没高亮是其次的问题,麻烦的是你编写了一个自己不知... 阅读详情
AI摘要

本文介绍汇编语言的基础概念,包括其在计算机系统中的作用及如何使用NASM汇编器进行编程。涵盖段、指令、寄存器等核心概念,并演示在VSCode中配置汇编环境的过程。

汇编语言(Assembly Language)

概述

汇编语言(Assembly Language)是一种低级编程语言,它直接对应于计算机的机器代码(machine code),但使用了更易读的文本符号。每台个人计算机都有一个微处理器,用于管理计算机的算术、逻辑和控制活动。每个处理器系列都有其自己的指令集,用于处理各种操作,例如从键盘获取输入、在屏幕上显示信息以及执行各种其他任务。这些指令集称为“机器语言指令”。处理器仅理解机器语言指令,这些指令是由1和0组成的字符串。然而,机器语言过于晦涩难懂,难以在软件开发中直接使用。因此,低级汇编语言应运而生,它为特定的处理器家族设计,以符号代码和更易理解的形式表示各种指令。学习汇编语言虽然困难,但它能提供对计算机系统的深刻理解,提升编程效率和低级编程技能,并在安全、逆向工程、调试、编译器开发等领域提供重要帮助。(◉3◉)

我这里使用的是kali linux,后续的操作可能不同的操作系统会不一样

汇编器(Assembler)

将汇编语言代码转换为机器码的工具。这就类似于python,nodejs,gcc将py,js,c转化为机器码。汇编语言是针对特定计算机体系结构的低级编程语言,而大多数高级编程语言通常可跨多个系统移植。

接下来,你需要选择一个汇编语言编译器(或汇编器)。常用的汇编器包括:

  1. NASM (Netwide Assembler)
  2. GAS (GNU Assembler)
  3. MASM (Microsoft Assembler) - Windows平台上使用
  4. FASM (Flat Assembler)

这里推荐使用NASM,支持linux和windows,免费并且在网上的教程比较多。

其他操作系统可根据网址自行下载nasm下载

sudo apt-get update
sudo apt-get install nasm

基础语法

1. 段(Section)

汇编程序通常分为三个主要部分,分别是数据段、代码段和栈段。段(Section)是程序的逻辑分区,用于组织代码和数据。每个段通常具有特定的用途,如存储代码、数据或堆栈。

注释

汇编语言注释以分号(;)开头。它可以包含任何可打印字符,包括空格。它可以单独出现在一行上

section .data
    hello db 'Hello, World!', 0  ; 已初始化的数据

section .bss
    buffer resb 64  
【娱乐向】教你用汇编语言写一个 Hello World 教你用汇编语言写一个Hello World 平台 OS: Ubuntu 18.04 STL Platform: i386 Editor:vim Get Started 我们知道,高级语言的源码文件都有自己的格式,比如,C的后缀:.c ,java的后缀: .java , C++的后缀:.cpp等等。 在汇编语言程序设计时,我们采用 .asm后缀的格式(代表assembly)来编辑源码。 vim hello_world.asm 编辑源码 在i386汇编中,不同的section有不同的作用, 它们在被打包成el 阅读详情

相关推荐

visual studio中使用nasm的方法(实践记录,有些乱,但通过了)

正在上传…重新上传取消 参考链接: Integrating a compiler/assembler in VS ; Using NASM with Visual Studio 2010 - CodeProject

cxhust001688的博客 3611

零基础C语言入门:VSCode与GCC环境配置及Hello World实战

编程语言是计算机科学的基础,C语言因其接近硬件、执行效率高的特点,成为理解计算机底层原理和数据结构的重要工具。其核心原理是通过编译器将人类可读的源代码转换为机器可执行的指令。掌握C语言开发环境配置是实践的第一步,具有极高的技术价值,它不仅是学习编程的起点,也是理解编译、链接等核心计算机概念的关键。在应用场景上,C语言广泛用于操作系统、嵌入式系统、性能敏感型应用的开发。对于初学者而言,快速搭建一个稳定、易用的本地开发环境是首要任务。本文聚焦于使用轻量级编辑器VSCode和GCC编译器,在Windows平台上为

weixin_30376509的博客 333

C++入门:从Hello World到基础语法核心概念详解

编程语言的基础语法是构建软件的逻辑基石,它定义了代码的结构、数据类型和基本操作规则。其核心原理在于将人类可读的指令通过编译器转换为机器可执行的二进制代码,从而实现自动化处理。掌握基础语法对于理解计算机如何工作、培养严谨的逻辑思维至关重要,是后续学习数据结构、算法和软件工程的必备前提。在C++等系统级语言中,这尤其体现在对变量、函数、控制流和内存模型的精准控制上。本文聚焦于C++的入门实践,通过详细解析**Hello World程序**的每一行代码,深入讲解**标识符、关键字、语句、函数**等核心语法元素,并

weixin_29306317的博客 328

C语言入门:从零搭建Dev-C++开发环境与Hello World实战

编程语言是计算机与人沟通的桥梁,而C语言作为一门接近底层的通用编程语言,其简洁的语法和高效的执行效率使其成为理解计算机工作原理、操作系统及嵌入式系统开发的基石。通过编译器将人类可读的源代码转换为机器可执行指令,是实现程序功能的核心技术环节。对于初学者而言,掌握开发环境的搭建是迈入编程世界的第一步,这不仅能实践基础语法,更能深入理解从源代码到可执行文件的完整编译流程。本文聚焦于使用轻量级集成开发环境Dev-C++,手把手指导安装配置,并编写运行经典的Hello World程序,帮助读者快速构建C语言学习环境,

cuiji1279的博客 401

VSCode+MASM插件实战:5分钟搞定汇编环境搭建(附常见错误排查)

本文提供了一份极简指南,介绍如何利用VSCode的MASM/TASM插件,在5分钟内快速搭建一个开箱即用的汇编开发环境。该插件内置了DOSBox和编译器,通过图形化右键菜单一键完成编译、链接、运行和调试,极大简化了传统繁琐的配置流程。文章还附带了常见错误排查方法,帮助初学者绕过路径、兼容性等典型问题,快速建立高效的学习工作站。

weixin_28826961的博客 403

C语言入门:使用Dev-C++编写第一个Hello World程序

集成开发环境(IDE)是程序员编写、调试和运行代码的核心工具,它通过将编辑器、编译器和调试器集成在一个界面中,大幅提升了开发效率。对于C语言初学者而言,选择一款合适的IDE至关重要,因为它能帮助新手快速搭建开发环境,聚焦于语法学习而非复杂配置。Dev-C++作为一款轻量级、开箱即用的C/C++ IDE,内置了MinGW编译器,无需额外配置即可编译运行程序,极大地降低了学习门槛。其简洁的界面设计有助于初学者专注于代码逻辑本身,理解从源代码到可执行文件的编译、链接过程。通过完成从环境搭建到第一个“Hello,

weixin_34354173的博客 419

25届电信保研经验贴(空天院)

学校:中九专业:电子信息工程加权:92.89绩点:3.91/4.0rank:前五学期rank2/95,综合排名rank1(前六学期和综合排名出的晚,实际上只用到了前五学期)科研竞赛:市级大创、数模省一、数竞省二,其他校奖若干英语:六级462、四级548个人感觉:rank=科研>竞赛>英语总之rank和科研必须得有一项,要么就rank高,很多强com院校入营看rank。我rank比较有优势,因此报的多是强com院校。要么就科研经历丰富,多主动联系老师,特别是弱com院校。冬令营:空天院。

qq_68608661的博客 6320

uniapp 实现RFID识别的实战指南

本文提供了在uniapp中实现RFID识别的完整实战指南。核心在于通过Android系统广播机制,利用uni-app的plus对象调用原生接口,完成与RFID手持设备的“软硬件握手”。文章详细介绍了从环境准备、设备选型、核心代码实现到避坑优化的全流程,帮助开发者快速构建高效的RFID盘点或管理应用。

weixin_29161719的博客 401

Flotherm XT新手必看:5分钟搞定自然对流热仿真(附案例文件)

本文为Flotherm XT新手提供了自然对流热仿真的快速入门指南,通过详细的步骤解析和实用技巧,帮助用户在5分钟内完成从建模到后处理的全流程。重点介绍了环境设置、几何建模、材料属性、网格划分等关键环节,并附有案例文件供参考学习,助力工程师快速掌握热仿真技术。

weixin_30839881的博客 605

Android Camera性能优化概述

做camera性能优化方面的工作有几年了,想写一篇文章简单介绍一下其中涉及到的具体技术,这篇文章会大概介绍一下涉及到的技术。

weixin_42136255的博客 4021

如何利用CANoe在两路CAN通道之间创建网关(gateway)

CANoe网关,利用CAPL实现CAN转发

Richy_Lai的博客 7889

COCO数据集缺失文件补全方法

本文代码是以目标检测(object detection)和实例分割(instance segmentation)任务的标签文件为例,即文件。其他任务的标签文件内容略有不同,但是图片来源表示字段完全相同,因此代码可通用。另外如果是非2017版本COCO应该也通用。msgspec是一个高性能的序列化和验证库,支持 JSON、MessagePack、YAML 和 TOML 等多种格式。高性能:在常见协议的编码/解码中表现出色,通常比其他库快10-80倍。零成本的模式验证。

qq_46396470的博客 1991

uniapp(全端兼容) - 超详细接入百度统计功能,给uniapp全平台各端项目引入添加百度统计的插件统计流量详细的步骤教程(提供最新的百度统计源代码,详细的示例代码复制粘贴即可快速搞定!)

uniapp h5 app 使用加入接入百度统计,uniapp百度统计,uniapp详细引入百度统计的教程,uniapp接入百度统计,uniapp如何实现加入百度的统计代码,uniapp怎么植入百度统计详细教程,uniapp如何对接百度统计,uniapp百度统计不生效怎么办,uniapp使用百度统计不生效常见问题,uniapp引入百度统计后没有生效,uniapp h5网页接入百度统计代码后没有统计无效,uniapp最新接入使用百度统计功能,uniapp增加百度统计代码,uniapp app如何接入百度统计,

✅ 精选推荐文章 1万+

MFC Tab Control控件完全指南:从基础使用到高级定制

本文详细介绍了MFC中TabControl控件的使用方法和高级技巧。主要内容包括:1) TabControl基础属性设置与绑定;2) 样式定制和外观自定义;3) 创建派生类实现扩展功能;4) 动态页面管理和子对话框控制;5) 高级功能如标签拖拽排序和右键菜单。通过完整代码示例,展示了从基本应用到复杂场景的实现方案,包括多标签页管理、自定义绘制、动态添加/删除标签等核心功能,为MFC开发者提供了全面的TabControl开发指南。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 255

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: Linux目录详解
下一篇: Windows上使用vscode配置C/C++编译环境
unravel_tom
博客等级 码龄3年 1151粉丝 73原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值