Shave three bytes (469 bytes)

This commit is contained in:
Hikaru Ikuta 2022-01-07 09:57:40 +09:00
parent 9b0b5e9f20
commit 1dbcb9c9b5

View file

@ -53,8 +53,8 @@ begin: mov $0x8000,%sp # uses higher address as stack
pop %ss # errata exists but don't care pop %ss # errata exists but don't care
mov $2,%bx mov $2,%bx
main: mov %sp,%cx main: mov %sp,%cx
call NewLine mov $'\r',%al
mov %dx,%bp # Clear input lookahead cache call PutChar
call Read call Read
call Eval call Eval
xchg %si,%ax xchg %si,%ax
@ -94,10 +94,10 @@ GetToken: # GetToken():al, dl is g_look
4: mov $')',%al 4: mov $')',%al
jmp PutChar jmp PutChar
Print: test %si,%si Print: xchg %di,%si
jz NewLine test %di,%di
xchg %di,%si jnz PrintObject
.byte 0x81 # sub ax, §call Putchar mov $'\r',%al
.PutObject: # .PutObject(c:al,x:si) .PutObject: # .PutObject(c:al,x:si)
.PrintString: # nul-terminated in si .PrintString: # nul-terminated in si
call PutChar # preserves si call PutChar # preserves si
@ -110,9 +110,6 @@ PrintObject: # PrintObject(x:si)
jnz .PrintString # -> ret jnz .PrintString # -> ret
ret ret
NewLine:mov $'\r',%al
jmp PutChar
Read: mov %bp,%dx # Get cached character Read: mov %bp,%dx # Get cached character
call GetToken call GetToken
GetObject: # called just after GetToken GetObject: # called just after GetToken