不存储在另一个字数组中的字数组的总和

时间:2013-12-16 14:23:15

标签: arrays assembly x86 addressing-mode

*分配给我的任务是编写汇编程序,找到三个8位值的总和并将其放在位置SUMS的内存中。然后计算三个单词变量的总和,并将其放在SUMS + 2位置的内存中。使用以下数据:

BYTE_ARRAY DB 10H,20H,30H
WORD_ARRAY DW 1000H,2000H,3000H
SUMS DW 0,0*

我的问题是以下代码给我一个错误

mov sums,al

据我所知,一个是16位地址,另一个是8位地址,但还有其他方法可以绕过它吗?

编辑:

完整代码:

    org 100h

.data 
byte_array db 10h,20h,30h
word_array dw 1000h,2000h,3000h


sums dw 0,0

.code

mov ax,@data
mov ds,ax
mov bx,offset byte_array
mov al,[bx]
inc bx
add al,[bx]
inc bx
add al,[bx]
mov si,offset sums
mov [si],al

mov bx,offset word_array
mov ax,[bx]
add ax,[bx+2]
add ax,[bx+4]
mov [bx+6], ax





ret

我唯一的问题是我不理解SUMS + 2的含义。有什么问题要求我这样做?

1 个答案:

答案 0 :(得分:1)

al是8位。

sum是16位。

所以他们有冲突。