使用A86程序集填充1-100数组

时间:2014-10-28 14:46:04

标签: arrays assembly x86 dos

我正在尝试编写一个汇编程序,该程序使用一个过程来填充值为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.这可能是一件简单的事情,但我在哪里弄乱? 非常感谢你的时间。

1 个答案:

答案 0 :(得分:0)

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

您正在创建一个类型dw的数组,这是一个单词。它的大小为两个字节。