Вы печатаете вывод перед проверкой и завершаете программу, когда достигаете пробела.
Это можно исправить, проверив пробел перед использованием выходных данных, а затем с помощью ad-hoc IF, имея вторую опцию для циклического просмотра, которая печатает выходные данные следующим образом:
StartTrim, LoadI TrimStringAddr
Subt B
Skipcond 400 / If not zero will Jump to process output
Jump IsLetter
Subt B
Load TrimStringAddr
Add A
Store TrimStringAddr
Jump StartTrim
IsLetter, LoadI TrimStringAddr
Skipcond 800 / Check when empty to finish
Jump End
Output
Subt C
Load TrimStringAddr
Add A
Store TrimStringAddr
Jump StartTrim
Полный код:
Load NameAddr
Store TrimStringAddr
JnS TrimString
NameAddr, ADD Name
Name, HEX 052 / R
HEX 061 / A
HEX 06e / N
HEX 061 / A
HEX 020 / SPACE
HEX 041 / A
HEX 074 / T
HEX 069 / I
HEX 06e / N
HEX 064 / D
HEX 065 / E
HEX 072 / R
HEX 000 / END
TrimStringAddr, HEX 0 / address of string to trim
TrimString, HEX 0
StartTrim, LoadI TrimStringAddr
Subt B
Skipcond 400
Jump IsLetter
Subt B
Load TrimStringAddr
Add A
Store TrimStringAddr
Jump StartTrim
IsLetter, LoadI TrimStringAddr
Skipcond 800 / Check when empty to finish
Jump End
Output
Subt C
Load TrimStringAddr
Add A
Store TrimStringAddr
Jump StartTrim
End, Halt
B, HEX 020
A, HEX 001
C, HEX 040