Assembly 在8086汇编中正确地将数组转换为字符串
我有一个数组 输入10重复(?) 经过一些操作后,我需要用mov打印这个数组,啊,9。我需要做什么Assembly 在8086汇编中正确地将数组转换为字符串,assembly,x86-16,Assembly,X86 16,我有一个数组 输入10重复(?) 经过一些操作后,我需要用mov打印这个数组,啊,9。我需要做什么 把美元放在最后 任何字符串后面的0DH和0AH是什么? 例如:提示“这是一个字符串”,0DH,0AH,$” 您有一个空数组,或者至少有一个数组的内容未定义 你需要把它装满一些东西才能打印出来 首先,您可以尝试input db'Testing'、“$”,而不是input 10dup(?)。这将把单词“Testing”后跟一个“$”放入标有“input”的内存位置 然后,您需要使用以下方式打印您在阵
- 把美元放在最后
- 任何字符串后面的0DH和0AH是什么? 例如:提示“这是一个字符串”,0DH,0AH,$”
input db'Testing'、“$”
,而不是input 10dup(?)
。这将把单词“Testing”后跟一个“$”放入标有“input”的内存位置
然后,您需要使用以下方式打印您在阵列中输入的内容:
mov dx, offset input # want BIOS call to point at the "input" location
# (with your "Testing" string in it)
mov ah, 9 # want BIOS call 9 (prints a string terminated by a $)
int 21h # run BIOS call
一旦工作正常,您可能会担心如何填充来自其他来源的“输入”,例如来自用户的输入(BIOS调用1h或0ah可能会对您有所帮助)。在字符串末尾添加$字符可能涉及mov[register]24h
或类似内容(24h是“$”的ascii码)
正如@harold在评论中所说,0ah和0dh是您放在字符串末尾的字符,以便在下一行打印下一个字符。0xA和0xD是