内存-寄存器
这些错误是怎么回事?assume cs:codea 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
d segment
db 0,0,0,0,0,0,0,0
d ends
code segment
start: mov ax,a
mov ds,ax
mov ax,10h
mov dx,20h
mov bx,20h
mov ax,0h
mov cx,8
s1: mov dl,ds:
mov ds:,dl
inc ax
inc bx
loop s1
mov ax,10h
mov bx,20h
mov cx,8
s2: mov dl,ds:
add ds:,bl
inc ax
inc dx
loop s2
mov ax,4c00h
int 21h
code ends
end start
本帖最后由 Dardy 于 2013-7-12 19:11 编辑
寻址方式是一个重点。
能出现在方刮号【】中的寄存器有:BX BP SI DIassume 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
d segment
db 0,0,0,0,0,0,0,0
d ends
code segment
;把a段挂勾到DS
start: mov bx,a
mov ds,bx
;把d段挂勾到ES
mov bx,d
mov es,bx
;把DS段里的值传送到ES段,也就是把a传送到d
mov bx,0
mov cx,8
s: mov dl,ds:
moves:,dl
inc bx
loop s
;把b段挂勾到DS
mov bx,b
mov ds,bx
;按字节,把ES(即d)段里的值加上DS(即b)段里的值。
mov bx,0
mov cx,8
s1: mov al,ds:
add al,es:
mov es:,al
inc bx
loop s1
mov ax,4c00h
int 21h
code ends
end start 楼上正解。。。。
页:
[1]