Dingo (20.01.2017 06:33 - 06:44, просмотров: 241) ответил SciFi на Продолжение про яр для стм8 и умножение. Вот ещё веселуха:
Запихал из любопытства ваш пример в SDCC
146 .area CODE
147 ; main.c: 7: uint16_t mul(uint16_t a, uint8_t b)
148 ; -----------------------------------------
149 ; function mul
150 ; -----------------------------------------
000000 151 _mul:
152 ; main.c: 9: return (uint8_t)a * b;
000000 7B 04 [ 1] 153 ld a, (0x04, sp)
000002 97 [ 1] 154 ld xl, a
000003 7B 05 [ 1] 155 ld a, (0x05, sp)
000005 42 [ 4] 156 mul x, a
000006 81 [ 4] 157 ret
А так вызывается
206 ; main.c: 51: xval = mul( 12000, 0xA5);
000041 4B A5 [ 1] 207 push #0xa5
000043 4B E0 [ 1] 208 push #0xe0
000045 4B 2E [ 1] 209 push #0x2e
000047 CDr00r00 [ 4] 210 call _mul
00004A 5B 03 [ 2] 211 addw sp, #3