1

我正在尝试编写一个汇编程序,该程序使用一个过程来填充一个值为 1-100 的数组。我到目前为止的代码如下:

jmp main

first100 dw 100 dup (?)

main:
call prepare
call populate
mov ax, first100[0]
call putDec

mov ah, 04c
int 021
include ioProcs.inc

prepare:
mov ax, 1
mov bx, 0
mov cx, 100
ret

populate:
mov first100[bx], ax
inc ax
inc bx
loop populate
ret

但是,数组 first100 中的第一个值变成 513 而不是 1。这可能很简单,但我在哪里搞砸了?非常感谢您的时间。

4

1 回答 1

0

正如@Jester 提到的,您需要bx在填充循环中增加两个字节。

您正在创建一个 type 数组dw,即一个单词。它的大小为两个字节。

于 2014-10-28T15:03:56.463 回答