penEuler操作系统结合豆包测试github仓库8086-Emulator项目

penEuler操作系统结合豆包测试github仓库8086-Emulator项目

8086-Emulator项目:https://github.com/YJDoc2/8086-Emulator

申请空间

首先在华为开发者空间申请一个免费云主机(penEuler操作系统):https://huaweicloud.csdn.net/

豆包提问如何使用

打开豆包:https://www.doubao.com/

选择技能->AI编程->Github仓库,输入:https://github.com/YJDoc2/8086-Emulator,提问词:如何使用这个仓库?,得以下信息。

这个仓库是一个 Intel 8086 模拟器/虚拟机项目,下面从安装、作为依赖使用、命令行使用等方面介绍其使用方法:

安装

由于该项目未发布到 crates.io,可以使用以下命令进行安装:

sh 复制代码
cargo install --git https://github.com/YJDoc2/8086-Emulator.git

安装完成后,名为 emulator_8086 的程序会被安装到 PATH 环境变量包含的目录中,你可以直接运行该程序。

命令行使用

shell 复制代码
USAGE:
emulator_8086 [FLAGS] [file_path]

FLAGS:
-h, --help Prints help information
-i, --interpreted To run in interpreted mode
-V, --version Prints version information

ARGS:
<file_path> Input assembly file path
  • file_path:这是一个必需的参数,指定要运行的汇编文件的路径。
  • 解释模式(-i 标志):启用解释模式后,在每条指令执行前会出现一个用户提示,允许你打印标志位、寄存器和内存信息,可用于调试。
  • 注意 :如果你不想在每个命令后都进行检查,而只是在特定命令前后检查,可以使用 int 3,具体语法在 syntax.md 中说明。
用户提示支持的命令
  • n/next:继续执行指令。
  • q/quit:退出程序。
  • 打印语句 :允许打印标志位、寄存器和内存位置,语法与汇编文件中的打印语句相同,具体在 syntax.md 中说明。

另一种触发用户提示的方法是设置陷阱标志(trap flag),在这种情况下,只要陷阱标志被设置,每条指令执行前都会显示提示。

示例代码

仓库的 examples 目录下包含了多个 8086 汇编程序的示例,你可以使用这些示例来测试和学习。例如,你可以使用以下命令运行一个示例文件:

sh 复制代码
emulator_8086 examples/addition.s

根据提示需要安装cargo,进行下一步搜索

豆包提问Rust 语言的包管理工具安装

豆包继续提问,提示词:linux Rust 安装 cargo,得以下信息。

在 Linux 系统中,Rust 语言的包管理工具 cargo 通常会随着 Rust 一起安装。以下是详细的安装步骤:

1. 使用 rustup 安装 Rust 和 cargo

rustup 是 Rust 的官方版本管理工具,借助它能轻松安装 Rust 和 cargo

安装 rustup

在终端里输入以下命令来下载并运行 rustup 的安装脚本:

bash 复制代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

运行上述命令之后,安装脚本会给出一系列提示,你可以选择默认配置,直接按回车键即可。脚本会自动下载并安装 Rust 开发环境,其中就包含 cargo

配置环境变量

安装完成后,你需要重新加载环境变量,或者重新打开终端,这样新的环境变量才能生效。你也可以手动运行以下命令来加载环境变量:

bash 复制代码
source $HOME/.cargo/env

2. 验证安装

安装完成之后,你可以通过以下命令来验证 cargo 是否安装成功:

bash 复制代码
cargo --version

若安装成功,终端会显示 cargo 的版本信息。

其他注意事项

  • 网络问题:由于安装过程中需要从网络下载文件,要是你遇到网络问题,可以考虑使用代理或者选择合适的镜像源。

按照上述步骤操作,你就能在 Linux 系统上成功安装 cargo 了。

在云主机下操作(penEuler操作系统)

penEuler操作系统的Linux命令https://blog.csdn.net/weixin_40220242/article/details/144388125?spm=1011.2415.3001.5331

安装过程

打开终端模拟器分别输入以下命令。

bash 复制代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

默认安装按回车键就行

bash 复制代码
source $HOME/.cargo/env
bash 复制代码
cargo --version
sh 复制代码
cargo install --git https://github.com/YJDoc2/8086-Emulator.git
sh 复制代码
emulator_8086 -h

出现以下提示就是安装成功了

shell 复制代码
USAGE:
emulator_8086 [FLAGS] [file_path]

FLAGS:
-h, --help Prints help information
-i, --interpreted To run in interpreted mode
-V, --version Prints version information

ARGS:
<file_path> Input assembly file path

测试过程

打开该目录home/developer/.cargo/git/checkouts/8086-emulator-f903af806e004ebe/dc9f831/examples/

把该目录下的测试文件拷贝到目录home/developer/下

执行命令看测试结果

复制代码
emulator_8086 hello_world.s
复制代码
emulator_8086 addition.s
复制代码
emulator_8086 data_transfer.s

emulator_8086 factorial.s

emulator_8086 interrupt.s
相关推荐
寒水馨1 分钟前
Linux下载、安装godot-4.7.1-stable(附安装包Godot_v4.7.1-stable_linux.x86_64.zip)
linux·游戏引擎·godot·游戏开发·2d游戏·3d游戏·godot engine
析数塔9 分钟前
SleeperGem 技术拆解:恶意 gem 是怎么躲过 CI/CD 扫描的
安全·ci/cd·github
念恒1230614 分钟前
Socket编程UDP(中)
linux·网络协议·udp
深耕运维十八载云架构实务19 分钟前
系统故障玄学之内存明明显示空闲,服务器却频繁卡顿卡死?拆解被忽略的 Linux 隐性内存陷阱
linux
qetfw1 小时前
CentOS 7 搭建 Sendmail + Dovecot 邮件服务器:SMTP、POP3、IMAP 与 TLS
linux·centos
明日清晨1 小时前
printf(“%p\n“,&((struct A *)NULL)->m_float)的原理
linux·服务器·前端
运维大师1 小时前
【K8S 运维实战】15-链路追踪Jaeger与OTel
运维·容器·kubernetes
霁月的小屋2 小时前
Docker 工程化实践(二):理解镜像分层与容器文件系统
运维·docker·容器
Android系统攻城狮2 小时前
Linux PipeWire深度解析之pw_context_add_spa_lib调用流程与实战(二十九)
linux·运维·服务器·音频进阶·pipewire音频进阶
Dovis(誓平步青云)3 小时前
《如何在CentOS 7中添加Plex官方软件源:解决文件磁盘难管理难题》
linux·运维·服务器·后端·生成对抗网络·centos