У меня есть этот код, который я скомпилировал для платформы MSP430, используя msp430-gcc.Почему мои данные и память сегмента памяти bss равны нулю?
#include<stdio.h>
#include<stdint.h>
// Preprocessor definitions
#define ROR(x,r) ((x>>r) | (x << (64-r)))
#define ROL(x,r) ((x << r) | (x >> (64-r)))
#define R(x,y,k) (x = ROR(x,8), x+=y, x^=k, y = ROL(y,3), y^=x)
void encrypt(uint64_t* , uint64_t*, uint64_t*);
void main(){
uint64_t key[2] ={0x0706050403020100, 0x0f0e0d0c0b0a0908} ; // key
uint64_t plain_text[2] = {0x7469206564616d20, 0x6c61766975716520};
uint64_t cipher_text[2] = {0,0}; //initializing cipher text to 0s
uint64_t* pt = plain_text;
uint64_t* ct = cipher_text; // Cipher Text
uint64_t* k = key; // 64 b
encrypt(pt, ct, k);
}
/*
* Ecnryption Method
*/
void encrypt(uint64_t* pt, uint64_t* ct, uint64_t* k){
uint64_t i;
uint64_t B = k[1];
uint64_t A = k[0];
// Encryption rounds
for(i=0; i<32; i++){
R(ct[1], ct[0], A);
R(B,A, i);
}
}
Я хотел статистику использования сегмента памяти для этой программы, и я сделал это путем создания файла объекта и с помощью команды $ size
. В результате я вышел из этого, как показано ниже:
text data bss dec hex filename
278 0 0 278 116 encrypt.o
Я не понимаю, почему data
сегмент, который говорит мне о моем использовании оперативной памяти равен нулю. Я предполагаю, что мой сегмент bss
равен нулю, так как у меня нет никаких неинициализированных переменных.
Я был бы очень благодарен, если кто-нибудь сможет объяснить мне, что здесь происходит. Спасибо.
Вы можете посмотреть список сборок и посмотреть, куда идут ваши литералы. Они могут быть включены в качестве непосредственной инструкции, которая помещает их в ваш раздел «текст». – Alden
Также весь объектный файл будет загружен в ОЗУ, поэтому я не уверен, почему вас беспокоит раздел 'data', равный нулю. В этом разделе действительно нет ничего, но ваш код займет место (278 байт). – Alden
Олден, я хотел бы знать, сколько ROM и RAM-памяти потребляется этой программой. Моя цель - уменьшить их насколько я могу. Поскольку раздел 'data' +' bss' рассказывает мне об использовании ОЗУ, я хочу знать эти значения. – NanoNi