Я пытаюсь объединить строку в MASM, и у меня есть некоторые трудности. Прежде всего, мой вывод на этом этапе - это 0 с древовидным характером, но я думаю, что, возможно, мой WriteString
(из библиотеки Irvine) не используется должным образом. WriteString
написать письмо от edx
или eax
? Я также знаю, что при использовании строк мне нужно работать с указателями на адреса их первого символа, а не на всю строку; это то, что я пытаюсь сделать с буфером и указателями OFFSET, но я не уверен, что это абсолютно правильно. Я также не уверен, нужен ли push и pop, и если да, то что именно он делает. Пожалуйста, помогите! Большое спасибо заранее.Конкатенация строки в MASM
Вот кодирование, что я написал:
TITLE Str_Concat (WA5.asm)
; Program Description: This program concatenates a source string to a target string.
; Author:
; Date Created: 2/6/2013
INCLUDE C:\IrvineExamplesVS2010a\Irvine32.inc
.data
source BYTE "Rocks",0
target BYTE "Zachary",0
buffer BYTE 24 DUP (0)
.code
main PROC
push ds
pop es
mov esi, OFFSET source
mov edi, OFFSET target
cld ;direction = forward
mov cx, LENGTHOF source
rep movsb
call WriteString
call crlf
exit ; exit to operating system
main ENDP
END main