实验一:查看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指令将对指定地址进行汇编语言的编写


目录
相关文章
|
2月前
|
缓存 安全 Java
Java并发编程进阶:深入理解Java内存模型
Java并发编程进阶:深入理解Java内存模型
42 0
|
3月前
|
Java 开发者
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
42 0
|
4天前
CPU的工作原理基于其内部结构,通过执行指令来完成各种任务
CPU的工作原理基于其内部结构,通过执行指令来完成各种任务
17 2
|
20天前
|
监控 算法 Java
深入理解Java中的垃圾回收机制在Java编程中,垃圾回收(Garbage Collection, GC)是一个核心概念,它自动管理内存,帮助开发者避免内存泄漏和溢出问题。本文将探讨Java中的垃圾回收机制,包括其基本原理、不同类型的垃圾收集器以及如何调优垃圾回收性能。通过深入浅出的方式,让读者对Java的垃圾回收有一个全面的认识。
本文详细介绍了Java中的垃圾回收机制,从基本原理到不同类型垃圾收集器的工作原理,再到实际调优策略。通过通俗易懂的语言和条理清晰的解释,帮助读者更好地理解和应用Java的垃圾回收技术,从而编写出更高效、稳定的Java应用程序。
|
1月前
|
存储 并行计算 算法
CUDA统一内存:简化GPU编程的内存管理
在GPU编程中,内存管理是关键挑战之一。NVIDIA CUDA 6.0引入了统一内存,简化了CPU与GPU之间的数据传输。统一内存允许在单个地址空间内分配可被两者访问的内存,自动迁移数据,从而简化内存管理、提高性能并增强代码可扩展性。本文将详细介绍统一内存的工作原理、优势及其使用方法,帮助开发者更高效地开发CUDA应用程序。
|
14天前
几组汇编指令的比较
几组汇编指令的比较
|
1月前
|
缓存 Linux C语言
C语言 多进程编程(六)共享内存
本文介绍了Linux系统下的多进程通信机制——共享内存的使用方法。首先详细讲解了如何通过`shmget()`函数创建共享内存,并提供了示例代码。接着介绍了如何利用`shmctl()`函数删除共享内存。随后,文章解释了共享内存映射的概念及其实现方法,包括使用`shmat()`函数进行映射以及使用`shmdt()`函数解除映射,并给出了相应的示例代码。最后,展示了如何在共享内存中读写数据的具体操作流程。
|
2月前
|
存储 程序员
揭秘汇编语言基础命令:掌握底层编程秘籍,你准备好挑战硬件的直接对话了吗?
【8月更文挑战第22天】大家好,今天分享汇编语言基础命令。汇编语言直接与硬件交互,高效而底层。对理解计算机原理至关重要。本文以x86架构为例,介绍环境搭建、数据定义、寄存器操作、算术运算及控制流指令。通过示例程序实现1至10的累加,展示基础命令的实际应用。虽然学习曲线陡峭,但掌握后能深刻理解计算机工作原理。一起来探索汇编语言的魅力吧!
38 3
|
3月前
|
NoSQL Redis 开发工具
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
|
3月前
|
存储 机器学习/深度学习 芯片
8086 汇编笔记(十二):int 指令 & 端口 & 直接定址表
8086 汇编笔记(十二):int 指令 & 端口 & 直接定址表

热门文章

最新文章