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 将多个变量连接到一个字符串中_Assembly_Emu8086 - Fatal编程技术网

Assembly 将多个变量连接到一个字符串中

Assembly 将多个变量连接到一个字符串中,assembly,emu8086,Assembly,Emu8086,我有几个变量,这些变量存储计时器中一个数字的ASCII码,我需要将所有变量合并成一个字符串,以便在宏上打印它们 范例 mov number_1, 30h mov number_2,31h mov number_3,32h 加入他们 mov time, number_1 mov time, number_2 mov time, number_3 为了加入它们,如果您将所有这些*number_u*变量连续定义为字节大小的变量,则根本不必执行任何操作。它们的存储将是相邻的,因此引用第一个数字_1

我有几个变量,这些变量存储计时器中一个数字的ASCII码,我需要将所有变量合并成一个字符串,以便在宏上打印它们

范例

mov number_1, 30h
mov number_2,31h
mov number_3,32h
加入他们

mov time, number_1
mov time, number_2
mov time, number_3 
为了加入它们,如果您将所有这些*number_u*变量连续定义为字节大小的变量,则根本不必执行任何操作。它们的存储将是相邻的,因此引用第一个数字_1变量等同于引用字符串。如有必要,可以附加字符串终止符

number_1  db ?
number_2  db ?
number_3  db ?
          db 0

如果坚持要复制到单独的字符串,则可以这样做:

number_1  db ?
number_2  db ?
number_3  db ?
...
time      db 3 dup (?), '$'   ; With $-terminator this time, you choose

...

cld                   ; You need this only once (most of the time)
lea     si, number_1  ; Source
lea     di, time      ; Destination
movsw                 ; number_1 and number_2 together
movsb                 ; number_3

1) 你不能像那样移动记忆。您需要使用寄存器作为中间层。2) 将所有字符存储在同一地址(
时间
)将毫无意义。您想使用
时间
时间+1
等。
number_1  db ?
number_2  db ?
number_3  db ?
...
time      db 3 dup (?), '$'   ; With $-terminator this time, you choose

...

cld                   ; You need this only once (most of the time)
lea     si, number_1  ; Source
lea     di, time      ; Destination
movsw                 ; number_1 and number_2 together
movsb                 ; number_3
mov     ax, number_1  ; number_1 and number_2 together
mov     time, ax      ; number_1 and number_2 together
mov     al, number_3  ; number_3
mov     time+2, al    ; number_3