keil编译环境下, 怎么看编译的程序占用flash,eeprom大小

keil编译环境下, 怎么看编译的程序占用flash,eeprom大小,第1张

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汇编语言如何判断两个有符号数的大小的程序段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10166084.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存