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

问题描述 投票:2回答: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 
assembly emu8086
1个回答
2
投票
mov number_1, 30h
mov number_2,31h
mov number_3,32h

如果您将所有这些* number_ *变量连续定义为字节大小的变量,那么为了加入它们,您根本不需要做任何事情。它们的存储将是相邻的,因此引用第一个number_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

要么

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
© www.soinside.com 2019 - 2024. All rights reserved.