Я пытаюсь написать код на C (используя Keil μVision 5, устройство: AT89C51AC3), которое позволяет мне ввести 2 Целочисленные числа, добавить их и затем распечатать. Проблема в том, что я ограничен размером байтового кода max. 2048.Программа добавления с ограничением по размеру
Мой фактический код требует 2099 байт для запуска.
Любая идея, как я мог бы сделать то же самое, используя меньше памяти?
#include <stdio.h>
#include <REG52.H>
int main()
{
int a, b;
/*------------------------------------------------
Setup the serial port for 1200 baud at 16MHz.
------------------------------------------------*/
#ifndef MONITOR51
SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 221; /* TH1: reload value for 1200 baud @ 16MHz */
TR1 = 1; /* TR1: timer 1 run */
TI = 1; /* TI: set TI to send first char of UART */
#endif
printf("Enter 2 numbers\n");
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}
Какова ваша целевая платформа? Какие устройства ввода у вас есть? Что такое устройство вывода? Вы можете читать непосредственно с устройства ввода без использования стандартной функции C 'scanf'? Можете ли вы напрямую выводить на выходное устройство? –
Возможно, вы не используете 'scanf' и' printf'? –
@xMarcoGP: Стандартные функции 'printf' и' scanf' являются очень гибкими и универсальными, поэтому ресурс является голодным. Попытайтесь заменить их рукописными целыми функциями конвертации и печати голой кости. – doynax