Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 在8086汇编中正确地将数组转换为字符串_Assembly_X86 16 - Fatal编程技术网

Assembly 在8086汇编中正确地将数组转换为字符串

Assembly 在8086汇编中正确地将数组转换为字符串,assembly,x86-16,Assembly,X86 16,我有一个数组 输入10重复(?) 经过一些操作后,我需要用mov打印这个数组,啊,9。我需要做什么 把美元放在最后 任何字符串后面的0DH和0AH是什么? 例如:提示“这是一个字符串”,0DH,0AH,$” 您有一个空数组,或者至少有一个数组的内容未定义 你需要把它装满一些东西才能打印出来 首先,您可以尝试input db'Testing'、“$”,而不是input 10dup(?)。这将把单词“Testing”后跟一个“$”放入标有“input”的内存位置 然后,您需要使用以下方式打印您在阵

我有一个数组

输入10重复(?)

经过一些操作后,我需要用mov打印这个数组,啊,9。我需要做什么

  • 把美元放在最后
  • 任何字符串后面的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是