首页 > 其他分享 >关于代码段数据段栈段

关于代码段数据段栈段

时间:2023-10-24 22:45:15浏览次数:24  
标签:字节 16 ip 内存 代码段 start 段栈 关于

关于call和ret指令的本质,其实就是栈里保存的时候ip地址或者段地址和ip地址,然后利用压栈和出栈,区完成内存的跳转,我认为汇编无函数,就是内存的跳转和压栈出栈而
已。另外ss:sp 就是指向那个栈的栈顶指针,从上到下是由小到大,实质对应-d指令显示的机器内存从左到右是变大的,毕竟栈也是内存表示的这么一个抽象的东西。
每次执行call就会把下一条指令的ip压栈,ret的时候就会出栈并且赋给csip实现跳转。当然近转移和远转移一个道理,不过call far ptr是原转移,配合retf使用。


将数据写入代码段;栈段,数据段以及怎么把它们分开;dup指令可以获得一些重复的内存。数据段,栈段,代码段它们的内存是连续的,最少占据16个字节,并且只要代码段前面有写东西比如dw了一些数据,那么就得在它下面一行写start,最后end+个start,不然的话,-u指令看的话,它翻译的指令其实不是我们想要的结果,会混在一起导致无法翻译成功,有start后可以让cs和ip指向正确的开始的地方,尽管-u查看后机器码还是混在一起,但是有了start后代码段指针可以指向正确的位置所以说可以正常执行。

一个字相当于2个字节,1个字节相当于8个bit(一个二进制位就是一个bit),在MASM内部定义有几个数据类型比如
BYTE ,db,8位 WORD,dw,16位 DWORD,dd,32位(也就是int的大小) QWORD,dq,64位
十六进制不能以字母打头,在记事本里创建数据的时候,用0去填充
关于db,dw的基本用法手机照片截图了。
另外每个段地址之间差16个字节,比如1000:0000物理就是10000 1001:0000物理就是10010 差16进制的10也就是16个字节,一个段的大小就是16个字节。如果不写start那么他会让cs和ip指向开始的地方,但是因为前面以及有了栈段或者数据段或者其他的db什么东西,所以会得不到我们想要的东西,但是有了start那么它会让cs和ip指向代码段的正确的地方。

标签:字节,16,ip,内存,代码段,start,段栈,关于
From: https://www.cnblogs.com/NiShu7777/p/17785916.html

相关文章

  • 关于斜率优化的一些杂谈
    这里并不是在详细地介绍斜率优化,只是一些瞎扯,想真正系统学习斜率优化的话请去阅读其他文章。斜率优化是众多dp优化方式中较为常见的一种,让我们不妨回忆一下它的形式:\[dp(i)=\min/\max(a(i)\timesb(j)+c(i)+d(j)+C)\]上式中,\(a,b,c,d\)分别为只跟\(i\)或\(j\)相关的函数......
  • 关于STM32F407ZGT6的USB损坏后使用ST-Link和USART1实现串口功能
    开发板:STM32F407ZGT6;目标:想使用软件“串口调试助手”情况:开发板上的USB_UART口所在器件损坏或者直接没有;解决办法:查看该开发板的原理图,可得:串口1的RX接TXD,串口1的TX接RXD,那么按如下步骤操作:1、现在使用USB转TTL模块,将串口1的RX接USB转TTL模块的TXD,将串口1的TX接USB转TTL模块的R......
  • 关于Nginx缓存
    Nginx缓存一般情况下系统用到的缓存有三种服务端缓存:缓存存在后端服务器,如redis代理缓存:缓存存储在代理服务器或中间件,内容从后端服务器获取,保存在本地客户端缓存:缓存在浏览器什么时候会出现304?服务器响应中包含有ETag和last-modified,浏览器下次去请求时会发送这两个标签,......
  • 关于Linux下Weblogic环境X11图形化处理问题
    转:使用图形验证码的时候报错的关于Linux下Weblogic环境X11图形化处理问题  Java异常处理之InvocationTargetException(反射异常)打印异常......
  • 关于CH32V系列MCU浮点打印使用配置差异
    当程序中需要打印浮点数时,按照下图配置任意勾选一个即可打印浮点数: 当勾选第一个时,float打印会输出正确数值,具体如下: 当勾选第二个时,float打印输出数值如下(5.20会输出5.19),具体如下。 此时若需要输出正确数值5.20,将float类型改为double类型即可 产生该现象的原因:fl......
  • 关于Windows打印机驱动相关问题-如何利用Java(或其他)调用打印机驱动程序完成原始文件翻
    前面这些都是问题描述,问题在偏下面场景:用户电脑上安装了PCL驱动,可通过驱动完成打印。需求:现在需要提供一种脱离PC端完成文件上传并打印的功能。让用户使用手机或pc未安装驱动时都能打印文件。目前思路:首先上传文件这一步没有任何问题,开发了相应的H5界面,通过浏览器进行原始文件......
  • 关于Python正则式中的r和字符串中的r
     正则表达式也是字符串,但是不是普通的字符串,其中包含了正则转义和字符串转义。正则表达式前边加r是取消了字符串转义,但是正则转义还在。例1和例2的对比中,例2的正则表达式取消了普通字符串转义,但是\n在正则表达式里是匹配换行符。例2和例3的对比中,例3的被匹配对象实际是两个字......
  • 关于 React 性能优化和数栈产品中的实践
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:的卢引入在日常开发过程中,我们会使用很多性能优化的API,比如像使用memo、useMemo优化组件或者值,再比如使用shouldComponentUpdate减......
  • 关于CH32V系列MCU FLASH地址的分配
    来源:https://www.cnblogs.com/liaigu/p/17784283.html关于在MRS开发环境下,针对CH32V系列MCUFLASH分配,具体方法如下:比如开辟一段空间,存放数组等数据,首先在ld文件中修改FLASH分配,如下图:.consumer_flash1:{.=ALIGN(4);}AT>FLASH1.consumer......
  • 关于低功耗模式下RTC唤醒
    1、关于RTC唤醒失败解决方法问题原因:若使用RTC进行唤醒唤醒不成功,闹钟中断标志没有被置位。原因可能是唤醒信号有毛刺,EXTI系统唤醒,但RTC来不及产生中断标志。解决方法:RTC闹钟中断中判断的标志由RTC_IT_ALR,更改为EXTI_Line17中断标志,需要在中断函数中清17中断线标志。 2、关于......