1935|11

6480

帖子

8

TA的资源

管理员

楼主
 

阅读打卡第四站:链接器与链接脚本、内嵌汇编代码——《RISC-V体系结构编程与实践 》 [复制链接]

 

活动详情: 一起围读《RISC-V体系结构编程与实践 》

本次是《RISC-V体系结构编程与实践 》阅读打卡第四站,跟帖回复作者提出以下问题。

 

笨书助力读书打卡题目(提醒:听说阅读完书籍的第六章链接器与链接脚本 和第七章内嵌汇编代码就可以啦):

13. 当一个程序的代码段的链接地址与加载地址不一致时,我们应该怎么做才能让程序正确运行?
14. 什么是加载重定位和链接重定位?
15. 什么是链接器松弛优化(linker relaxation optimization)?
16. 在内嵌汇编代码的输出部分里,“=”和“+”分别代表什么意思?
17. 在内嵌汇编代码与C语言宏结合时,“#”与“##”分别代表什么意思?

 

参与活动的小伙伴们,阅读的怎样了呢?快快打卡走起

@jobszheng5 @1nnocent @子期非女 @常见泽1 @我爱下载

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

最新回复

13. 当一个程序的代码段的链接地址与加载地址不一致时,我们应该怎么做才能让程序正确运行? ———————————— 当链接地址和加载地址不一致时,需要将代码从加载地址复制到链接地址在运行 14. 什么是加载重定位和链接重定位? —————————— 加载重定位,通过修改返回地址为链接地址,当函数返回时会跳转到链接地址处。这个过程叫做重定位;链接重定位,链接器在链接最终可执行二进制文件时才具有全局内存地址布局图,这些符号的最终地址由链接器来分配和确定。这个过程称为链接重定位。 15. 什么是链接器松弛优化(linker relaxation optimization)? —————————— 链接器松弛优化时在链接阶段的一种优化技术   16. 在内嵌汇编代码的输出部分里,“=”和“+”分别代表什么意思? —————————— 在内嵌汇编代码的输出部分,“=”表示操作数具有只写属性,“+”表示操作具有可读和可写属性   详情 回复 发表于 2023-6-12 17:19
点赞 关注
个人签名微信搜索公众号“EEWORLDBBS”快去添加关注吧!

回复
举报

7221

帖子

192

TA的资源

五彩晶圆(高级)

沙发
 
在内嵌汇编代码与C语言宏结合时,“#”与“##”分别代表什么意思? 一个#:替换这个变量后,再加双引号引起来 两个#:连接符号
 
 

回复

7003

帖子

11

TA的资源

版主

板凳
 
哇还有这样的辅导方式,这读书活动呀好,管管辛苦了!

点评

引导式学习     详情 回复 发表于 2023-4-19 10:33
 
 
 

回复

7003

帖子

11

TA的资源

版主

4
 

前面拿到了原子的开发板,在读到启动代码时,有汇编代码,有这书读读,还是效果不错的。

点评

跟管理盛情一下,给来一本       详情 回复 发表于 2023-4-19 10:34
能有机会看看还是蛮好的。  详情 回复 发表于 2023-4-18 10:35
 
 
 

回复

6105

帖子

4

TA的资源

版主

5
 
lugl4313820 发表于 2023-4-18 06:44 前面拿到了原子的开发板,在读到启动代码时,有汇编代码,有这书读读,还是效果不错的。

能有机会看看还是蛮好的。

点评

现在就是能静下心来读好一本书,那是相当的难。  详情 回复 发表于 2023-4-18 11:05
 
 
 

回复

7003

帖子

11

TA的资源

版主

6
 
damiaa 发表于 2023-4-18 10:35 能有机会看看还是蛮好的。

现在就是能静下心来读好一本书,那是相当的难。

 
 
 

回复

6502

帖子

10

TA的资源

版主

7
 
lugl4313820 发表于 2023-4-18 06:43 哇还有这样的辅导方式,这读书活动呀好,管管辛苦了!

引导式学习   

 
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 

回复

6502

帖子

10

TA的资源

版主

8
 
lugl4313820 发表于 2023-4-18 06:44 前面拿到了原子的开发板,在读到启动代码时,有汇编代码,有这书读读,还是效果不错的。

跟管理盛情一下,给来一本     

点评

不知道有没有书了,希望可以有机会呀。  详情 回复 发表于 2023-4-19 10:52
 
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 

回复

7003

帖子

11

TA的资源

版主

9
 
秦天qintian0303 发表于 2023-4-19 10:34 跟管理盛情一下,给来一本     

不知道有没有书了,希望可以有机会呀。

 
 
 

回复

337

帖子

2

TA的资源

纯净的硅(初级)

10
 

13. 当一个程序的代码段的链接地址与加载地址不一致时,我们应该怎么做才能让程序正确运行?

     当链接地址和加载地址不一致时,需要将代码从加载地址复制到链接地址在运行。
14. 什么是加载重定位和链接重定位?

     加载重定位:当加载地址与链接地址不同时,需要采用加载重定位;当链接地址和运行地址相同时,代码需要从加载地址复制到链接地址然后运行代码;如果链接地址和运行地址不相同时,需要通过位置有关指令跳转到链接地址,然后在跳转到运行地址运行程序,类似sbi-uboot-linux内核的跳转过程。

    链接重定位:源码编译过程中,在预处理、编译和汇编等编译过程并不知道程序的链接地址,因此生成的可重定位目标文件中所有的符号都暂时设为0,链接器根据配置最终的全局内存分配布局图链接所有可执行二进制代码时,再由链接器分配和确定最终的地址过程称为链接重定位。
15. 什么是链接器松弛优化(linker relaxation optimization)?

    链接器松弛优化时在链接阶段的一种优化技术,目的是将符号地址访问由两条指令变为一条指令,从而达到优化的目的。链接器松弛优化主要涉及到函数跳转优化和符号地址访问优化两个方面。
16. 在内嵌汇编代码的输出部分里,“=”和“+”分别代表什么意思?

     在内嵌汇编代码的输出部分,“=”表示操作数具有只写属性,“+”表示操作具有可读和可写属性
17. 在内嵌汇编代码与C语言宏结合时,“#”与“##”分别代表什么意思?

    宏参数前使用“#”,预处理器将参数转换为一个字符串;“##”用于将参数和一个标识符连接成一个新的标识符。

 
 
 

回复

670

帖子

0

TA的资源

纯净的硅(高级)

11
 

Q13. 当一个程序的代码段的链接地址与加载地址不一致时,我们应该怎么做才能让程序正确运行?

A13:需要把代码段的数据从加载地址复制到链接地址

Q14. 什么是加载重定位和链接重定位?

A14:加载重定位,通过修改返回地址为链接地址,当函数返回时会跳转到链接地址处。这个过程叫做重定位;链接重定位,链接器在链接最终可执行二进制文件时才具有全局内存地址布局图,这些符号的最终地址由链接器来分配和确定。这个过程称为链接重定位。

Q15. 什么是链接器松弛优化(linker relaxation optimization)?

A15:链接阶段的一种优化技术,旨在减少不必要的指令开销。

Q16. 在内嵌汇编代码的输出部分里,“=”和“+”分别代表什么意思?

A16:“=”代表被修饰的操作数具有只写属性;“+”代表被修饰的操作数具有可读,可写操作。

Q17. 在内嵌汇编代码与C语言宏结合时,“#”与“##”分别代表什么意思?

A17:C语言宏中“#”代表将数值参数转换为一个字符串;“##”将两个参数以字符串的形式连接到一起形成新字符串。

 
 
 

回复

7221

帖子

192

TA的资源

五彩晶圆(高级)

12
 

13. 当一个程序的代码段的链接地址与加载地址不一致时,我们应该怎么做才能让程序正确运行?

————————————

当链接地址和加载地址不一致时,需要将代码从加载地址复制到链接地址在运行


14. 什么是加载重定位和链接重定位?

——————————

加载重定位,通过修改返回地址为链接地址,当函数返回时会跳转到链接地址处。这个过程叫做重定位;链接重定位,链接器在链接最终可执行二进制文件时才具有全局内存地址布局图,这些符号的最终地址由链接器来分配和确定。这个过程称为链接重定位。


15. 什么是链接器松弛优化(linker relaxation optimization)?

——————————

链接器松弛优化时在链接阶段的一种优化技术

 

16. 在内嵌汇编代码的输出部分里,“=”和“+”分别代表什么意思?

——————————

在内嵌汇编代码的输出部分,“=”表示操作数具有只写属性,“+”表示操作具有可读和可写属性

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表