我是玛丽的新人。我正在创建一个Marie代码,它将删除元素之间的“空格”。例如。如果它是~~FIT ~ 1047~~~,它将删除元素~~~~。
有没有人可以看一下我的代码并指导我?
我知道当它达到HEX 020时,它会跳转到end,当它应该删除它并将下一个值添加到字符串中时。
Load NameAddr
Store TrimStringAddr
JnS TrimString
Halt
NameAddr, ADR Name
Name, HEX 052 / R <--- this is where you add your name
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
Output
Subt B
Skipcond 800
Jump End
Subt B
Load TrimStringAddr
Add A
Store TrimStringAddr
Jump StartTrim
End, Halt
B, HEX 020
A, HEX 001正在将其加载到AC中。然而。当我想要获取的是RANAATINDER时,我得到的输出是RANA
发布于 2018-11-30 04:35:30
在检查输出之前打印输出,并在到达空格时结束程序。
这可以通过在使用output之前检查空格,然后使用adhoc 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 040https://stackoverflow.com/questions/52158235
复制相似问题