实验一:查看CPU和内存,用机器指令和汇编指令编程

简介: 实验一:查看CPU和内存,用机器指令和汇编指令编程

实验一:查看CPU和内存,用机器指令和汇编指令编程

实验场景:ubuntu18.04版本

1.进入DOS系统

先在系统上安装sudo apt-get install dosbox

2.在终端处直接输入dosemu进入DOS系统

3.输入debug,便可进行debug调试

debug命令及其使用

所使用到的Debug功能。

1.R(Register)命令查看,改变CPU寄存器中的内容

2.D(Dump)命令查看内容中的内容

3.E(Enter)命令改写内容中的内容

4.U(Unassemble)命令将内存中的机器指令翻译成汇编指令

5.T(Trace)命令执行一条机器指令

6.A(Assemble)命令以汇编指令的格式在内存中写入一条机器指令


具体实际操作可以跟着王爽的汇编语言进行

8cc0c4b606a84f37aa9359cc93695cb8.png


直接输入r可以查看各个寄存器中的值

6d9b5ea7ce964a68ad0c8217e8f6c603.png


输入r ax按下回车之后可以输入16进制的数字就可以往寄存器中输入想输入的值

206ce8889a874847aa4c4ae25622cb12.png


D命令可以查看内容中的内容,输入格式是d 段地址:偏移地址的格式来查看例如要查看10000H中的内容d 1000:0。输出的形式是左边是地址,中间是机器码,右边是对应的ASCII码.

5c8e121d759643b8a82f69e3190b40c2.png


E命令来改写内容中的内容


5d4551e4a8d04eca8e4421780fdd8cff.png

用e改写内容中的内容,用u对机器指令进行反汇编处理


2b18047c43ce4166ac317ef0df23c65c.png

T指令可以执行CS:IP处的指令。可以通过R指令将CS和IP改到自己想要的位置,再使用T指令执行。2adb418d9c2b42798a7816788a97a2c8.png


a指令将对指定地址进行汇编语言的编写


目录
相关文章
|
3月前
|
缓存 安全 Java
Java并发编程进阶:深入理解Java内存模型
Java并发编程进阶:深入理解Java内存模型
46 0
|
8天前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
|
17天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
191 2
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
128 5
|
28天前
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
|
2月前
|
监控 算法 Java
深入理解Java中的垃圾回收机制在Java编程中,垃圾回收(Garbage Collection, GC)是一个核心概念,它自动管理内存,帮助开发者避免内存泄漏和溢出问题。本文将探讨Java中的垃圾回收机制,包括其基本原理、不同类型的垃圾收集器以及如何调优垃圾回收性能。通过深入浅出的方式,让读者对Java的垃圾回收有一个全面的认识。
本文详细介绍了Java中的垃圾回收机制,从基本原理到不同类型垃圾收集器的工作原理,再到实际调优策略。通过通俗易懂的语言和条理清晰的解释,帮助读者更好地理解和应用Java的垃圾回收技术,从而编写出更高效、稳定的Java应用程序。
|
1月前
|
C# 开发工具 Windows
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
41 0
|
2月前
|
存储 并行计算 算法
CUDA统一内存:简化GPU编程的内存管理
在GPU编程中,内存管理是关键挑战之一。NVIDIA CUDA 6.0引入了统一内存,简化了CPU与GPU之间的数据传输。统一内存允许在单个地址空间内分配可被两者访问的内存,自动迁移数据,从而简化内存管理、提高性能并增强代码可扩展性。本文将详细介绍统一内存的工作原理、优势及其使用方法,帮助开发者更高效地开发CUDA应用程序。
|
2月前
|
缓存 Linux C语言
C语言 多进程编程(六)共享内存
本文介绍了Linux系统下的多进程通信机制——共享内存的使用方法。首先详细讲解了如何通过`shmget()`函数创建共享内存,并提供了示例代码。接着介绍了如何利用`shmctl()`函数删除共享内存。随后,文章解释了共享内存映射的概念及其实现方法,包括使用`shmat()`函数进行映射以及使用`shmdt()`函数解除映射,并给出了相应的示例代码。最后,展示了如何在共享内存中读写数据的具体操作流程。
|
2月前
|
Prometheus Kubernetes 监控
使用kubectl快速查看各个节点的CPU和内存占用量
在Kubernetes集群中,安装metrics-server,并使用kubectl快速查看集群中各个节点的资源使用情况。
127 0

热门文章

最新文章