社区
汇编语言
帖子详情
数据段地址不一致,
Liudx-liudx
2018-06-08 03:12:11
我用DEBUG -R命令显示DS=075A.用反汇编-U,却显示DS=076A.这是怎么
回事》?
...全文
1537
4
打赏
收藏
数据段地址不一致,
我用DEBUG -R命令显示DS=075A.用反汇编-U,却显示DS=076A.这是怎么回事》?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_37016780
2018-06-17
打赏
举报
回复
请问楼主是否是mov ax,076A mov ds,ax了? R命令显示的是075A处的
leetow2006
2018-06-16
打赏
举报
回复
你这个是exe文件还是com文件?如果是com文件,则是在同一个段内,如果是exe文件,则有多个段
zara
2018-06-11
打赏
举报
回复
程序刚接手时,DS 和 ES 是指向程序段前缀PSP 的,DS 和 ES 的设置是由程序自己来进行的,这和 SS:SP 不同。
你的程序数据段在最前面,PSP 块大小是 100H 字节,所以有你看到的样子。
ARM架构与编程学习(五)(代码重定位(
段
的概念_重定位的引入,重定位要做的事,链接脚本使用与分析,
数据
段
重定位,清除BSS
段
,代码
段
重定位,重定位的纯C函数实现))
段
= 给固件的“工具箱”分区,让管家(片内固件)做事又快又稳,功能自然强大!
段
类型是否需要重定位类比原因代码
段
✅ 需要修改说明书上的
地址
指令隐含绝对
地址
只读
数据
段
✅ 需要调整装饰品悬挂位置
数据
引用依赖预设
地址
可读写
数据
段
✅ 需要重新摆放家具变量
地址
必须对齐BSS
段
❌ 不需要预留空仓库货架并清空只占位,无实际
数据
搬运一句话理解:只要
段
里有“写死
地址
的快递单”(绝对
地址
引用),搬家(加载到内存)时就必须改
地址
(重定位)。
【理解ARM架构】 散列文件 | 重定位
介绍了重定位的概念和原因,还有散列文件的作用,包括加载域,可执行域,输入
段
等。还实现了代码
段
的重定位,可读可写
数据
段
的重定位,BSS或者ZI
段
的清0,以及如何使用纯C函数实现重定位。
从0写bootloader —— APP自重定位
使用的IDE为MDK。散列文件: Bootloader程序: APP程序: ,打印
数据
为乱码,因为buf是全局变量,属于
数据
段
,它的加载
地址
则是FLASH上,散列文件定义的
数据
段
链接
地址
是 ,
数据
段
的加载
地址
和链接不
一致
,所以需要重定位,而bootloader和APP都没有做重定位,所以打印出来是乱码。 修改APP实现重定位
数据
段
和清除BSS
段
: 在调用xmain之前重定位
数据
段
在调用xmain之前清除BSS
段
APP自我复制所有
段
实现重定位 修改散列文件如下: 加载
地址
是0x800
iTop-4412 裸机程序(七)- 代码重定位介绍
目录链接
地址
和运行
地址
位置无关代码什么是代码重定位为什么需要代码重定位程序
段
链接脚本 链接
地址
和运行
地址
链接
地址
:给链接器指定将来程序希望被运行的内存
地址
运行
地址
:程序实际运行时的内存
地址
,由程序实际被加载到的实际内存
地址
决定 PS:程序的链接
地址
和运行
地址
是不一定相同的 位置无关代码 位置无关代码(Position-independent Code,PIC):代码的链接
地址
和运行
地址
无关。 位置有关代码:代码的链接
地址
和运行
地址
必须
一致
,否则无法运行。 什么是代码重定位 很多时候程序的链接
地址
和运行
汇编程序编写时 masm,link的问题解决
汇编程序编写时 masm,link的问题解决 1、Extra characters on line 注释的用的";"是中文的 “;” ———————————————————— 2、Operand types must match(操作数于操作码不匹配) sto是字节 bx是字 ———————————————————— 3、Must be index or base register([address]必须是数或寄存器) 所以我们可以mov [0000],ax 或 mov
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章