首页 > 编程语言 >汇编语言开发环境搭建

汇编语言开发环境搭建

时间:2023-08-06 12:55:17浏览次数:34  
标签:bin 引导 汇编语言 扇区 开发 VHD 硬盘 搭建

汇编语言开发环境搭建

简述

学习汇编的意义: 汇编语言有着简单的语法,它更加贴近硬件,而不像高级语言有着自己的语言抽象层

关于主引导扇区

主引导扇区 : 处理器上电或复位后,如果系统由硬盘启动,那么ROM-BIOS将试图读取硬盘0面0道1扇区,这块就是主引导扇区 (Main Boot Sector) 缩写: MBR,判断主引导扇区是否有效方法:

  1. 主引导扇区有512字节
  2. 主引导扇区以55H AAH结尾

这个主引导扇区一般由操作系统负责,正常情况这块代码是检测操作系统,如果主引导扇区有效,那么将执行跳转指令 jmp 0x0000:0x7c00, 跳转到物理地址0x7c00处执行。

注意事项

注: 文章内容主要在 2.配置硬盘与启动,这一小节详细说明了bochsdbg配置以及运行用户编写的汇编代码

实现效果: 启动虚拟机后可直接运行用户写的程序(如下图)

NASM 编译器

  1. 到NASM官网下载后直接安装
https://nasm.us/
  1. 安装后配置好环境变量

  1. 打开cmd : Ctrl + r, 输入"cmd", 输入nasm -v, 正常显示版本信息说明安装成功(如下图)

Virtualbox 环境搭建

点击下载: Oracle VM VirtualBox 直接安装, 主要用于创建VHD固定硬盘

安装bochs IA-32仿真器

点击下载 : bochs: 开源 IA-32 仿真项目 (主页) (sourceforge.io)

1. 使用virtualbox创建VHD磁盘

分配VHD固定硬盘,大小20M足够

2. 配置硬盘与启动(重点)

打开Vhd Writer软件 获取VHD磁盘柱面,磁头,磁道等信息

配置bochsdbg所需启动磁盘, 上一步获取到的柱面,磁头,磁道等信息填入

设置启动方式

编写测试主引导扇区的汇编程序

mov ax, 0x30
mov dx, 0xc0
add ax, dx

times 502 db 0 ;; 一个扇区512字节,这里作为填充

db 0x55 ;; 有效主引导扇区以 55H AAH 结尾
db 0xAA

编译汇编代码,得到.bin文件,并且写入刚刚创建好的VHD虚拟磁盘中

nasm -f bin start.asm -o start.bin

打开Vhd writer, 写入start.bin

启动bochsdbg

0x7c00处打断点,并执行

查看寄存器, 代码已生效

标签:bin,引导,汇编语言,扇区,开发,VHD,硬盘,搭建
From: https://www.cnblogs.com/jingpengblog/p/17609318.html

相关文章

  • Uniapp开发:配置运行到手机或模拟器功能
    一、配置环境变量将使用的adb环境路径(D:\HBuilderX3.4.6\HBuilderX\plugins\launcher\tools\adbs)配置到环境变量(控制面板-》系统-》高级系统设置-》环境变量编辑)中:二、查看adb相关信息打开cmd命令行1、使用adbversion命令查看adb版本。adbversion......
  • 关于用腾讯云轻量服务器搭建雷池waf出现掉监控解决方案
    前言用腾讯云轻量服务器搭建了雷池waf后发现腾讯云的监控也掉(腾讯内网的软件都掉线了),安装宝塔的Nginx也报错,找宝塔运维排查过后,发现是腾讯源的问题,说到腾讯云源大概知道是内网冲突了,之前找研发看过类似的问题。问题分析1).安装雷池waf后无法ping通腾讯内网metadata.tencentyun......
  • 2022 robocom 世界机器人开发者大赛-本科组(国赛)
    RC-u1智能红绿灯题目描述:RC-u1智能红绿灯为了最大化通行效率同时照顾老年人穿行马路,在某养老社区前,某科技公司设置了一个智能红绿灯。这个红绿灯是这样设计的:路的两旁设置了一个按钮,老年人希望通行马路时会按下按钮;在没有人按按钮的时候,红绿灯一直为绿灯;当红绿灯为绿灯......
  • LDAP--统一账号/统一认证系统的引入和搭建
    1为什么需要统一账号/统一认证?1.1没人喜欢记忆一大堆混乱的账号和密码,员工不喜欢,企业更不喜欢。企业要高效解决业务和研发问题,必须在初创期规划搭建必要的企业软件和研发工具,也就是进行IT基础设施中软件部分的选型、配置和部署。在大型企业,这样的工作会有专门的IT基础设施部门和内......
  • 多方聚力共育人才,华为携手产学研赋能HarmonyOS开发者
    8月4日-6日,华为开发者大会2023(HDC.Together)在华为东莞松山湖隆重举办,本次大会不仅邀请广大开发者共襄技术盛举,也展现了华为在自身坚持创新攻坚的基础上,持续规划HarmonyOS开发课程,优化开发者联盟学堂体验,并通过深化政企合作、产学合作,共同为HarmonyOS开发者赋能,助力开发者成长。打......
  • Spring Boot&Vue3前后端分离实战wiki知识库系统<十一>--文档管理功能开发三
    文档内容的显示:在上一次SpringBoot&Vue3前后端分离实战wiki知识库系统<十>--文档管理功能开发二文档管理模块还差文档的显示木有完成,所以接下来先将这块模块给收尾了。增加单独获取内容的接口:概述:在前端页面文档查询时,只查询了文档的基本信息,其中文档的富文本内容是木有带出来的:当......
  • Spring Boot + Vue3前后端分离实战wiki知识库系统<十一>--文档管理功能开发三
    文档内容的显示:在上一次https://www.cnblogs.com/webor2006/p/17510360.html文档管理模块还差文档的显示木有完成,所以接下来先将这块模块给收尾了。增加单独获取内容的接口:概述:在前端页面文档查询时,只查询了文档的基本信息,其中文档的富文本内容是木有带出来的:当然也不可能......
  • 运用事件与定时器实现字幕滚动效果(Qt开发)
    1、效果展示我们经常能够在外面看到那种滚动字幕,那么就拿qt来做一个吧。2、实现思路实现一个窗口部件,这个窗口部件显示了一串文本标语,它会每t毫秒向左移动一个像素。如果窗口部件比文本宽,那么文本将会被多次重复,直到能够填满整个窗口部件的宽度为止。3、滚动窗口部件创建一个滚......
  • SpringMVC的搭建idea2021、tomcat8.5
    准备环境idea2021tomcat8.0资料来源,尚硅谷的视频1、新建项目      生成pom.xml文件 3、pom.xml文件添加依赖<dependencies><!--SpringMVC--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</arti......
  • 微信开发之自动回复的技术实现
    请求URL:http://域名地址/sendText请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识wcId是string接收人微信id/群idcontent是string文本内容消息返回数据:参数名类型说明codestring1000成功,1001失败m......