
Сообщение от
goodboy
в этом примере кстати хорошо видно почему применение всяких ЯВУ компиляторов даёт такой унылый результат
(лишние команды жрут память/такты)
Потому что забыли (поленились) сделать оптимизации кода, сокращение push/pop. Ради смеха прогнал в ZX Like Pascal:
Код:
program abc;
var
a,b,c,x,y: byte;
begin
a:=x;
b:=y;
c:=x-y;
end.
Выдало:
Код:
ld a,(_X)
ld (_A),a
ld a,(_Y)
ld (_B),a
ld a,(_X)
ld l,a
ld h,0
ld a,(_Y)
ld e,a
ld d,0
and a
sbc hl,de
ld a,l
ld (_C),a
Если все переменные типа word (а не byte), то еще лучше:
Код:
ld hl,(_X)
ld (_A),hl
ld hl,(_Y)
ld (_B),hl
ld hl,(_X)
ld de,(_Y)
and a
sbc hl,de
ld (_C),hl