汇编语言实验五(5)一个问题!
本帖最后由 xiaoshazi 于 2017-1-16 09:45 编辑我的问题在红字那里!!
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,a
mov ds,ax ;ds指向a段地址
mov ax,b
mov es,ax ;es指向b段地址
mov bx,0
mov cx,8
s: mov al,
add al,es:
mov dx,c
mov ds,dx ;ds指向c段地址
mov ,al
mov ax,a
mov ds,ax ;重新将ds指向a段(好像此处还能改进) 这里为什么要重新将段数指向a段啊
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
本帖最后由 redstone8415 于 2017-1-16 10:13 编辑
assume cs:code ds:b es:a
操作哪段就装入哪段! 因为A段和B段不在同一段 ,一个标号代表一段。 s: mov al,
add al,es:
mov dx,c
mov ds,dx ;ds指向c段地址
mov ,al
mov ax,a
mov ds,ax
inc bx
loop s
当将数值写入c段后,执行循环,到s标号处开始,执行mov al,此时(al)==(ds:bx)而这个ds指向的是c!不是a!所以不能缺少你所说的那句。
页:
[1]