8086:qemu执行汇编

ops/2024/12/23 7:00:01/

正文

环境:macOS M1。

QEMU(Quick EMUlator)是一个开源的虚拟机监视器,可以模拟多种硬件平台,包括处理器架构、设备和操作系统。QEMU具有以下主要功能和用途:

  1. 硬件模拟器QEMU可以模拟多种处理器架构,如x86、ARM、MIPS等,以及各种设备,如网络适配器、显卡、存储设备等。这使得开发人员可以在虚拟环境中测试和调试他们的软件,而无需实际硬件设备。

  2. 虚拟机管理QEMU可以用作虚拟机管理器,允许用户创建、启动、停止和管理虚拟机实例。用户可以在QEMU中运行多个虚拟机,每个虚拟机可以运行不同的操作系统和应用程序。

  3. 嵌入式开发QEMU可以用于嵌入式系统开发,开发人员可以在QEMU中模拟嵌入式处理器和设备,以便开发和调试嵌入式软件。

  4. 交叉编译QEMU提供了交叉编译的功能,可以在一个平台上编译运行在另一个平台上的程序。这对于开发跨平台应用程序和移植软件非常有用。

  5. 快照和恢复QEMU支持虚拟机快照功能,用户可以创建虚拟机快照,以便在需要时恢复到之前的状态。

QEMU是一个功能强大的虚拟化工具,可以用于多种用途,包括软件开发、测试、嵌入式系统开发等。它为开发人员提供了一个灵活的虚拟化平台,可以更高效地进行软件开发和调试。

本次实验用的是 8086 汇编,然后用 qemu-system-i386 硬件跑这个汇编程序:

org 0x7c00start:mov ah,15int 10hmov ah,0int 10hmov cx,9mov bx,1
_next:mov dx,bxadd dx,48mov ax,dxmov ah,0ehint 10hinc bxpush cxmov ah,86hmov cx,3hmov dx,0hint 15hpop cxloop _nextjmp starttimes 510 - ($ -$$) db 0
dw 0xaa55

写好了以后,进行变编译:

nasm print.asm -o demo.img

执行:

qemu-system-i386 -drive format=raw,file=demo.img -nographic

我不用显示界面,直接输出打印结果,加了-nographic 参数。这样程序就可以跑起来了:

1234

跑这个程序指定的是QEMU虚拟机的架构,这里是i386,即Intel x86架构的32位处理器。当使用qemu-system-i386命令并提供一个二进制文件作为参数时,QEMU会尝试以i386架构的处理器来执行这个二进制文件。虽然这个二进制文件不是一个完整的操作系统或磁盘镜像文件,但QEMU仍然可以尝试执行它,并显示输出结果。

在这种情况下,如果将一个包含汇编程序编译后的机器码的二进制文件作为参数提供给qemu-system-i386命令,QEMU会尝试执行这个二进制文件,并显示执行结果。这种情况下,QEMU会将这个二进制文件当做一个可执行程序来执行,而不是一个完整的镜像文件。


http://www.ppmy.cn/ops/19211.html

相关文章

PDF 书签制作与调整 从可编辑、不可编辑 PDF 文档创建书签的方法

本文是对以前发表的旧文拆分,因为原文主题太多,过长,特另起一篇分述。 第一部分 由可编辑 PDF 文档创建书签 方法 1. Adobe Acrobat Pro autobookmark AutoBookmark 是一个可用于 Adobe Acrobat 自动生成书签的插件。 官方下载地址&…

机器学习-线性回归普通最小二乘法运用的经典基本假设有哪些?

在线性回归中,普通最小二乘法(Ordinary Least Squares,OLS)是一种常用的参数估计方法。它基于一些经典的基本假设,包括以下几个方面: 线性关系:OLS假设因变量(被解释变量&#xff0…

Docker基础学习(5.Docker镜像命令)

⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容:个人博客系统 ⭐我的文档网站:http://xyhwh-nav.cn/ ⭐微信公众号:码上言 文章目录 Docker run流程镜像是什么&a…

ISP比普通的静态代理相比有什么优势?

ISP(Internet Service Provider),即互联网服务提供商,是向广大用户综合提供互联网接入业务、信息业务、增值业务的电信运营商。而静态代理则是一个固定不变的代理IP地址,具有稳定性强、兼容性好和管理方便等特点。当我…

【Websokect】服务器https协议下ws连接失败问题及解决办法

在服务器使用HTTPS协议下连接WebSocket时,通常会出现一些常见的问题导致连接失败。以下是一些可能的原因和解决办法: SSL证书配置问题: 确保您的服务器上已正确配置SSL证书,并且证书有效。如果证书配置不正确或者过期,…

算法06链表

算法06链表 一、链表概述1.1概述1.2链表的组成部分:1.3链表的优缺点: 二、链表典例力扣707.设计链表难点分析:(1)MyLinkedList成员变量的确定:(2)初始化自定义链表:&…

微前端实现原理详解——以Single-Spa为例

Single-Spa是一个用于微前端架构的JavaScript框架。它允许在一个应用程序中同时加载多个前端框架,例如React、Angular、Vue等。以下是Single-Spa的核心架构解析: 核心思想:Single-Spa的核心思想是将前端应用程序拆分为多个小应用,…