исходный тестовый код test.c
Код
#include <avr/io.h>
char v = 0x55;
int main()
{
v = 0xaa;
asm volatile ("nop"); // граница кодогенерации чтения порта
v = PORTD;
asm volatile ("nop"); // граница кодогенерации чтения порта
v = v * v;
return (int)v;
}
avr-gcc -mmcu=atmega88 -Os -S test.c
результат
Код
.file "test.c"
__SREG__ = 0x3f
__SP_H__ = 0x3e
__SP_L__ = 0x3d
__tmp_reg__ = 0
__zero_reg__ = 1
.global __do_copy_data
.global __do_clear_bss
.text
.global main
.type main, @function
main:
/* prologue: function */
/* frame size = 0 */
/* #APP */
; 8 "test.c" 1
nop
; 0 "" 2
/* #NOAPP */
in r18,43-0x20
/* #APP */
; 10 "test.c" 1
nop
; 0 "" 2
/* #NOAPP */
mul r18,r18
mov r18,r0
clr r1
sts v,r18
clr r19
sbrc r18,7
com r19
movw r24,r18
/* epilogue start */
ret
.size main, .-main
.global v
.data
.type v, @object
.size v, 1
v:
.byte 85
на че конкретно собсна балоны накатываются? поподробнее нада а то ниче не понято у Вас за проблема. нада код, асм, версию компиллера, ключи компиляции..... сайт не телепатический