简单的汇编语言问题,请高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/24 16:58:24
题目是这样的,编写CODE段中的代码,将A段和B段中的数据依次相加,将结果存到C段中。

现在我编出来的程序在下面:
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends

b segment
db 1,2,3,4,5,6,7,8
b ends

c segment
db 0,0,0,0,0,0,0,0
c ends

code segment
start:

mov ax,b
mov es,ax
mov dx,0h
mov ax,c
mov ds,ax
mov bx,0
mov cx,8
s1:mov al,es:[dx](这里)
mov [bx],al
inc dx
inc bx
loop s1

mov ax,a
mov es,ax
mov dx,0h
mov bx,0
mov cx,8
s2:mov ax,es:[dx](这里)
add [bx],al
inc dx
inc bx
loop s2

mov ax,4c00h
int 21h

code ends

end start

两处标识是编译报错的地方,报的是不是基本寄存器。
我不知道怎么改。。请各位高手帮忙,最好请给我一定的讲解,我现在正初学汇编语言,很多地方感觉还没有上手,请讲得仔细点,谢谢
定义数据都是题目固定的。。。我自己写的部分是从START开始,至code ends 结束的。。。谢谢

感觉像是 基址寄存器的问题, 把DX 换成BX,BP试一试?

将A、B段定义在数据段里,怎么定义在代码段里呀!
DATA SEGMENT
A DB 1,2,3,4
B DB 4,5,6,7
C DB 4 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MOV AX,DATA
MOV DS,AX
作加运算
CODE ENDS
程序中标点符号是中文的,不能直接复制