首页 > 编程语言 >汇编_段的综述

汇编_段的综述

时间:2023-04-11 11:37:31浏览次数:212  
标签:汇编 定义 综述 当做 安排 我们 地址 CPU

私以为原书中的这段综述,解决了初学者关于CPU如何识别代码 or 数据的困惑,原文摘录。

段的综述

我们可以将一段内存定义为一个段,用一个段地址指示段,用偏移地址访问段内的单元。这完全是我们自己的安排。

我们可以用一个段存放数据,将它定义为“数据段”;
我们可以用一个段存放代码,将它定义为“代码段”;
我们可以用一个段当做栈,将它定义为“栈段”。

我们可以这样安排,但若要让CPU按照我们的安排来访问这些段,就要:
对于数据段,将它的段地址放在DS中,用mov、add、sub等访问内存单元的指令时,CPU就将我们定义的数据段中的内容当做数据来访问;
对于代码段,将它的段地址放在CS中,将段中第一条指令的偏移地址放在IP中,这样CPU就将执行我们定义的代码段中的指令;
对于栈段,将它的段地址放在SS中,将栈顶单元的偏移地址放在SP中,这样CPU在需要进行栈操作的时候,比如执行push、pop指令等,就将我们定义的栈段当做栈空间来用。

可见,不管我们如何安排,CPU将内存中的某段内容当做代码,是因CS:IP指向了那里;CPU将某段内存当做栈,是因为SS:SP指向了那里。我们一定要清楚,什么是我们的安排,以及如何让CPU按我们的安排行事。要非常清楚CPU的工作机理,才能在控制CPU按照我们的安排运行的时候做到游刃有余。

总结

通过直接修改寄存器的值,控制CPU执行的感觉还是有点奇妙的。

标签:汇编,定义,综述,当做,安排,我们,地址,CPU
From: https://www.cnblogs.com/snowsteps/p/17302396.html

相关文章

  • 0-C语言与汇编语言的转换
    汇编语言入门四:打通C和汇编语言-知乎Win10下C语言转8086汇编-博客园:https://www.cnblogs.com/VxerLee/p/15264290.htmlLinux执行汇编程序在Linux下运行你的第一个汇编程序_linux怎么执行汇编代码_冷色调的夏天的博客-CSDN博客在线网站:CompilerExplorer强烈推荐一个在线网......
  • 汇编_debug初探
    环境安装dosbox下载,https://www.dosbox.com/debug.exe下载,https://www.pc6.com/softview/SoftView_26159.html双击运行dosbox安装目录下DOSBox0.74-3Options.bat,修改dosbox配置文件配置文件末尾添加配置,挂载debug.exe文件目录[autoexec]#Linesinthissectionwillber......
  • 反汇编训练1
    以下是一个C++函数,以及该函数的汇编代码:```cppintadd(inta,intb){returna+b;}//汇编代码_Z3addii:push%rbpmov%rsp,%rbpmov%edi,-0x4(%rbp)mov%esi,-0x8(%rbp)mov-0x8(%rbp),%eaxadd-0x4(%rbp),%eaxpop%rb......
  • 反汇编训练2
    以下是一个汇编程序,请转换为等效的C++代码:```assemblysection.textglobal_start_start:moveax,2;操作码:0xB8,参数:0x02movebx,3;操作码:0xBB,参数:0x03addeax,ebx;操作码:0x01,参数:0xC3movecx,eax......
  • 逆向——汇编中的位运算
     汇编中的移位指令1、算术移位指令SAL(ShiftArithmeticLeft):算术左移SAR(ShiftArithmeticRight):算术右移格式:SAL/SARReg/Mem,CL/Imm即算数移位指令后面的第一个操作数是寄存器或者内存;第二个操作数是寄存器或者立即数SALeax,2SALax,1SALal,3​​举例:SAR......
  • 王爽汇编 课程设计1
    代码部分任务:将实验7中的Poweridea公司的数据按照下图显示出来用时3天。代码行为240行左右。小结:在一个模块中,使用了全局的四个寄存器,ax,bx,cx,dx务必要使用成对的push-pop相等恢复,不然出现的出错在代码量大了后很难发现如下:是进行一个si寄存器值的除2,因为在写代......
  • 汇编第三章复习之七种寻址
    段寄存器:CS、DS、ES、SS1.指令指令由操作数码和操作数两部分构成操作码:说明计算机要执行的操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。    操作数:是指令执行的参与者,即各种操作的对象。也就是指令执行操作过程中需要的操作数。2、寻址 1、......
  • 最全综述 | 图像分割算法
    图像分割是计算机视觉研究中的一个经典难题,已经成为图像理解领域关注的一个热点,图像分割是图像分析的第一步,是计算机视觉的基础,是图像理解的重要组成部分,同时也是图像处理中最困难的问题之一。所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相......
  • 「机器人感知与控制关键技术」最新2023研究综述
    作者:王耀南,江一鸣,姜娇,张辉,谭浩然,彭伟星,吴昊天,曾凯来源:自动化学报原文地址:「机器人感知与控制关键技术」最新2023研究综述智能机器人在服务国家重大需求,引领国民经济发展和保障国防安全中起到重要作用,被誉为“制造业皇冠顶端的明珠”。随着新一轮工业革命的到来,世界主要工业国家都开......
  • 汇编模块化处理
    ;**********************************************************************TITLE整数求和;**********************************************************************;**********************************************************************;*程序运行平台要求......