[英]Copying a Word Array to a DoubleWord array NASM assembly
%include 'Functions.asm'
section .data
wordArray dw 0, 1, 2, 3, 4, 5
length equ $-wordArray
ddArray dd 0, 1, 2, 3, 4, 5
section .text
global main
main:
mov ebp, esp; for correct debugging
mov esi, wordArray
mov edi, ddArray
mov ecx, 0
convert:
mov bx, [esi + ecx * 2]
movzx edi, bx
inc ecx
cmp ecx, length
jne convert
mov eax, ddArray
call intLineFeed
call exit
我正在嘗試使用一個循環,將所有元素從一個無符號的Word(16位)數組復制到一個無符號的雙字(32位)數組中。 但是,我認為我做的不正確。
輸出我正在接收134520880
您將覆蓋輸出指針edi
而不是寫入輸出數組。 代替:
mov bx, [esi + ecx * 2]
movzx edi, bx
您可以嘗試:
movzx ebx, word [esi + ecx * 2]
mov [edi + ecx * 4], ebx
另請注意,您需要將length
除以二,因為您已將其聲明為字節數,因此需要cmp ecx, length / 2
PS:您的輸出數組已經包含正確的數據。
PPS:不確定mov eax, ddArray; call intLineFeed
mov eax, ddArray; call intLineFeed
應該可以完成,我想這是在打印數組的地址,所以這就是為什么要獲得134520880
作為輸出的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.