
eeprom大小keil好像看不出来,只能从程序的角度推算占用量吧。
flash大小可以通过编译通过后的下方信息栏得到,比如:
data = , xdata = , code =
data是内部固有RAM,xdata是外部接口RAM,或者片内自带的SRAM,code就是falsh的大小了。
C编译器的版本不同、采用的优化级别不同都会导致目标代码大小变化,一般新版本比老版本产生的代码好些。我原来试过从keil3升级到keil4,但编译器版本没变,结果发现生成的hex大小完全一样。
比较双精度数大小,要比较一次或两次。
第一次,先比较高位字,按有符号数规则分大小:大的大,小的小
若高位字相等,再比较低位字,按无符号数规则分大小:高的大,低的小
所以,你程序代码段中???代码可这样编写:
MOV AX, DATA ; 段初始化
MOV DS, AX
MOV AX, STACK
MOV SS, AX
MOV DX, WORD PTR BUFA+2 ; 按题意,将数送入DX,AX, BX, CX
MOV AX, WORD PTR BUFA
MOV BX, WORD PTR BUFB+2
MOV CX, WORD PTR BUFB
CMP DX, BX ; 先比高位字
JG MOVE_A ; A大
JL MOVE_B ; B大
CMP AX, CX ; 高位字相等就再比低位字
JAE MOVE_A ; A大
JMP MOVE_B ; B大
MOVE_A:
MOV WORD PTR BUFC+2, DX ; A大
MOV WORD PTR BUFC, AX
JMP EXIT
MOVE_B:
MOV WORD PTR BUFC+2, BX ; B大
MOV WORD PTR BUFC, CX
EXIT:
如果题目是bufa>bufb,则把1送入dx,bufa=bufb,则把0送入dx,bufa<bufb,则把-1送入dx则稍作修改:
MOV AX, DATA ; 段初始化
MOV DS, AX
MOV AX, STACK
MOV SS, AX
MOV DX, WORD PTR BUFA+2 ; 按题意,将数送入DX,AX, BX, CX
MOV AX, WORD PTR BUFA
MOV BX, WORD PTR BUFB+2
MOV CX, WORD PTR BUFB
CMP DX, BX ; 先比高位字
JG MOVE_A ; A大
JL MOVE_B ; B大
CMP AX, CX ; 高位字相等就再比低位字
JA MOVE_A ; A大
JZ MOVE_0 ; 相等
JMP MOVE_B ; B大
MOVE_A:
MOV DX, 1 ; A大
JMP EXIT
MOVE_B:
MOV DX, -1 ; B大
JMP EXIT
MOVE_0:
MOV DX, 0
EXIT:
),确信以后,如果C单元格中的数值大于或等于,则C单元格
这里有一点需要的是:
无论是HEX的大小,还是编译后CODE的大小,都不是烧入到MCU中代码的“真实”容量。
因为这里涉及到数据存放格式相关问题,具体我就不说了。
一般来说,烧入到MCU硬件中去的程序大小,会比你keil编译后的CODE的大小稍微小一些,但差距不会很大。
所以在一般使用中,可以把编译后CODE的大小来作为实际程序容量的一个参考,,,话再说回来,LZ一般不会去那样极限编程吧,LZ你编译后,CODE的大小是多少呢??
我的邮箱是:
ppt1845@163com
有什么问题的话,可以邮件交流等。
以上就是关于keil编译环境下, 怎么看编译的程序占用flash,eeprom大小全部的内容,包括:keil编译环境下, 怎么看编译的程序占用flash,eeprom大小、为什么同一个程序用keil2和keil3生成的hex文件大小不一样、keil汇编语言如何判断两个有符号数的大小的程序段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)