下面几个伪指令都什么概念:
.VER        什么是map文件?这个指令有什么意义?
.LIST       什么是列表文件?
.PAGE
.FORM
.OPTJ     这个优化指令,什么意思,优化什么?
另外再啰嗦两句:
瑞萨官方的软件手册对汇编指令的说明很不清楚,对很多指令只看手册根本无法理解
手册里也没有伪指令的介绍
HEW的手册又没有单独对伪指令的介绍,而是夹杂在一堆非常专业的知识里。
所以建议最好能把汇编指令、伪指令单独写出来,再详细点。										
					
					
							
					
共10条
1/1															1							跳转至页
		 
					
				2楼
														
															
	另外再问下:
R8C的指令分0格式,短格式,快速格式,一般格式
如果我不指定指令格式
HEW编译器是否自动指定最优的格式??
谢谢!!!
					
					
							
					
					R8C的指令分0格式,短格式,快速格式,一般格式
如果我不指定指令格式
HEW编译器是否自动指定最优的格式??
谢谢!!!
 
					
				3楼
														Kejian2000,感谢您关注使用瑞萨的单片机产品。我先回答您几个问题,不全面的地方请大家补充讨论。
map文件:
一般在用于描述MCU可访问存储区,程序段的定位及大小,所用标号、标志位的地址等等,要比存储器映像要更详细的信息文件,在编译时可指定是否自动生成。 
列表文件:
是中间文件,编译,汇编和连接时都会利用这些文件,也可供编程人员查看时用。
采用.LIST伪指令,可以控制在编译,汇编和连接时哪些信息是要输出到中间文件,哪些不要。一般用 .LIST OFF 与 .LIST ON控制。
.OPTJ:
可以控制跳转指令和子程序调用优化。
感谢您提出中肯的建议,这部分伪指令的说明不在Hew手册中介绍,我手头只有M16C族的英文版:
http://documentation.renesas.com/eng/products/mpumcu/apn/rej05b0085_m16cap.pdf
R8C的相关内容在《瑞萨R8C/11单片机原理和应用》与《瑞萨R8C/1A、1B单片机原理和应用》书里有介绍。
 
					
				4楼
														
															
	如您所说,
如果不指定指令格式,N30(瑞萨的编译器,嵌在Hew中)会自动优化最优的格式。无特殊要求的话,可以不指明所用指令格式。
					
					
							
					
					如果不指定指令格式,N30(瑞萨的编译器,嵌在Hew中)会自动优化最优的格式。无特殊要求的话,可以不指明所用指令格式。
 
					
				5楼
														
															
	非常感谢您的回答!
《瑞萨R8C/11单片机原理和应用》我是有的,对于.OPTJ,上面提到过
和您说的一样,我还是不理解
是否是这样:
当使用.OPTJ后,原本的JMP.W会被优化为JMP.B,因为目标地址距离跳转指令很近,没必要用.W,用.B就好了
.OPTJ OFF 就是关闭优化
.OPTJ ON 就是开启优化
另外,使用.OPTJ ON 后是不是意味着开启所有优化
而没必要再使用.OPTJ ON,JMPW之类的指令了
										
					
					
							
					
					《瑞萨R8C/11单片机原理和应用》我是有的,对于.OPTJ,上面提到过
和您说的一样,我还是不理解
是否是这样:
当使用.OPTJ后,原本的JMP.W会被优化为JMP.B,因为目标地址距离跳转指令很近,没必要用.W,用.B就好了
.OPTJ OFF 就是关闭优化
.OPTJ ON 就是开启优化
另外,使用.OPTJ ON 后是不是意味着开启所有优化
而没必要再使用.OPTJ ON,JMPW之类的指令了
 
					
				6楼
														
															
	.OPTJ 伪指令可控制无条件分支指令的优化选项。具体定义如下:
.OPTJ [OFF|ON], [JMPW|JMPA], [JSRW|JSRA]
1、OFF: Branch instructions are not optimized.
ON: Branch instructions are optimized. (Default)
2、JMPW: Unconditional branch instructions not subject to optimization processing
are generated with "JMP.W".
JMPA: Unconditional branch instructions not subject to optimization processing
are generated with "JMP.A". (Default)
3、JSRW: Subroutine call instructions not subject to optimization processing are generated with "JSR.W".
JSRA: Subroutine call instructions not subject to optimization processing are
generated with "JSR.W". (Default)
例如:
OPTJ OFF
.OPTJ ON
.OPTJ ON,JMPW
.OPTJ ON,JMPW,JSRW
.OPTJ ON,JMPW,JSRA
.OPTJ ON,JMPA
.OPTJ ON,JMPA,JSRW
.OPTJ ON,JMPA,JSRA
.OPTJ ON,JSRW
.OPTJ ON,JSRA
.OPTJ 伪指令的功能是与C编译器中的“-OGJ”选项相对应的,即对无条件跳转指令选择最适合的跳转方式,当然也包括跳转距离(S, B, W, A)。所以我认为您的理解是正确的,即如果对于一些短距离的跳转,如果汇编语言中使用了不恰当的跳转距离定义,则被优化(正如您所举例的那样)。
但.OPTJ ON,JMPW应当是指JMP.W的指令不被优化,即除JMP.W以外的无条件跳转才进行优化。
您真的看的很仔细了,研究的也挺深入的。
有些问题我们也必须很好的思考才能回答您,我们一起讨论吧。
但我们现在一般都采用C语言编程了,对于跳转指令的优化,是C编译器自动完成的,想.OPTJ这种汇编的伪指令很少自己去设定了。
关于汇编的伪指令,您可以参考我们的汇编器手册,具体下载链接为:
http://documentation.renesas.com/eng/products/tool/rej10j1791_as30_u.pdf
					
					
							
					
					.OPTJ [OFF|ON], [JMPW|JMPA], [JSRW|JSRA]
1、OFF: Branch instructions are not optimized.
ON: Branch instructions are optimized. (Default)
2、JMPW: Unconditional branch instructions not subject to optimization processing
are generated with "JMP.W".
JMPA: Unconditional branch instructions not subject to optimization processing
are generated with "JMP.A". (Default)
3、JSRW: Subroutine call instructions not subject to optimization processing are generated with "JSR.W".
JSRA: Subroutine call instructions not subject to optimization processing are
generated with "JSR.W". (Default)
例如:
OPTJ OFF
.OPTJ ON
.OPTJ ON,JMPW
.OPTJ ON,JMPW,JSRW
.OPTJ ON,JMPW,JSRA
.OPTJ ON,JMPA
.OPTJ ON,JMPA,JSRW
.OPTJ ON,JMPA,JSRA
.OPTJ ON,JSRW
.OPTJ ON,JSRA
.OPTJ 伪指令的功能是与C编译器中的“-OGJ”选项相对应的,即对无条件跳转指令选择最适合的跳转方式,当然也包括跳转距离(S, B, W, A)。所以我认为您的理解是正确的,即如果对于一些短距离的跳转,如果汇编语言中使用了不恰当的跳转距离定义,则被优化(正如您所举例的那样)。
但.OPTJ ON,JMPW应当是指JMP.W的指令不被优化,即除JMP.W以外的无条件跳转才进行优化。
您真的看的很仔细了,研究的也挺深入的。
有些问题我们也必须很好的思考才能回答您,我们一起讨论吧。
但我们现在一般都采用C语言编程了,对于跳转指令的优化,是C编译器自动完成的,想.OPTJ这种汇编的伪指令很少自己去设定了。
关于汇编的伪指令,您可以参考我们的汇编器手册,具体下载链接为:
http://documentation.renesas.com/eng/products/tool/rej10j1791_as30_u.pdf
 
					
				7楼
														
															
	呵呵,R8C的芯片用了有段时间了
提的这些问题都是基本用不到、又不太好弄明白的,显得有些深
许多问题还是要向你们请教的
					
					
							
					
					提的这些问题都是基本用不到、又不太好弄明白的,显得有些深
许多问题还是要向你们请教的
 
					
				8楼
														既然R8C/Tiny是16bit的,用C吧。用汇编是不是主要是对时序有要求?
我最近学习瑞萨的R8C,还是蛮适合C的,编译代码效率也还可以,毕竟是CISC指令集的。
不知楼主是否是电机控制的应用,有心水多交流哈
 
					
				共10条
1/1															1							跳转至页
		回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |


 
			
			
			
						
			 
					
				 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

