准备一个名为printStringName的MARIE子例程,该子例程可以打印包含两个名称的任何名称 ASCII“ 0”终止的字符串(使用“输出”指令)。 首先使用标签“ PrintName”保存名称字符串的起始地址(例如, 在上面的示例中为myNameAdd)。然后,代码应从该地址加载一个字符, 如果它不是“ 0”,则输出它,然后将地址加1,并继续执行直到字符 从地址加载的是“ 0”(表示字符串的结尾)。然后,打印ASCII “空格”字符,然后继续打印名称字符串的第二部分,即姓氏,直到 从地址加载的字符为“ 0”(表示字符串的结尾)。然后,当 您加载了第二个ASCII“ 0”,它标记了“名称的结尾”,并打印了ASCII“ New Line” 字符并继续打印名字。对于此任务,您可以使用两个或三个名称(您的 名和姓,您的老师的姓名,您的老师的姓名等,至少两个名字) 打印时,每个名称都经过硬编码并分配了一个标签以进行标识。
JnS Print
Halt
Print, HEX 2
PrintString, LoadI PrintName
Skipcond 800
JumpI Print
Output
Clear
Load PrintName
Add Increment
Store PrintName
Clear
Jump PrintString
PrintName, DEC 0
HEX 043
HEX 048
HEX 045
HEX 041
HEX 048
HEX 030
HEX 030
HEX 030
Increment, DEC 1
Load PrintName
Store Print_Arg
JnS Print
Halt
PrintName, hex 04A
Print_Arg, DEC 0
Print, Hex 0
Load Print_Arg
Output
Skipcond 000
JumpI Print
Output
Clear
Load PrintName
Add Increment
Store PrintName
Clear
Jump 0
Increment, DEC 1
代码不断重复,不确定是什么问题