汇编语言_段地址寄存器ES的使用

记录段地址寄存器的使用,用下面的例题来说明具体的使用方法。

例题

将内存ffff:0-ffff:f 内存单元中的数据复制到0:200-0:20f;
分析:
ds寄存器:记录数据从哪里来;
es寄存器:记录数据到哪里去。

assume cs:code 

	code segment
	mov ax,0ffffh
	mov ds,ax     ; 数据从ds中来 
	
	mov ax,20h
	mov es,ax      ; 数据到es中去 

	mov bx,0      ; 0-16
	mov cx,16     ; loop 计数器
setNumber:
	
	mov dl,ds:[bx]
	mov es:[bx],dl
	inc bx
	loop setNumber
	
	mov ax,4c00h
	int 21h
code ends
end

结果如下:
汇编语言_段地址寄存器ES的使用
-d 0:200 20f
这个代码可以继续优化,方法如下;
汇编语言_段地址寄存器ES的使用
修改代码如下:

assume cs:code 

	code segment
	mov ax,0ffffh
	mov ds,ax     ; 数据从ds中来 
	
	mov ax,20h
	mov es,ax      ; 数据到es中去 

	mov bx,0      ; 0-16
	mov cx,8     ; loop 计数器
setNumber:
	
	mov dx,ds:[bx]
	mov es:[bx],dx
	add bx,2
	loop setNumber
	
	mov ax,4c00h
	int 21h
code ends
end

执行前
汇编语言_段地址寄存器ES的使用
执行后
汇编语言_段地址寄存器ES的使用

上一篇:codeforces 2100左右的DS题 做题记录


下一篇:E. DS堆栈--表达式计算【S】