cx控制循环加偏移地址赋值写的两段程序

assume cs:code
code segment
	mov ax, 0ffffh
	mov ds, ax
	mov bx, 0
	mov dx, 0
	mov cx, 12
	
s:	mov al, [bx]	;将ffff:0000处的值赋给al
	mov ah, 0		;ah置0
	add dx, ax		;dx+=ax
	inc bx			;bx++
	loop s			;最终实现的是将地址ffff:0000到地址ffff:0011的值相加,和赋值给dx
	
	mov ax, 4c00H
	int 21H
code ends
end

另一段:

assume cs:code 
code segment
	mov bx, 0
	mov cx, 12		;循环12次
s:	mov ax, 0ffffH	;ax=ffffH
	mov ds, ax		;ds=ax=ffffH
	mov dl, [bx]	;dl=ffff:0
	mov ax, 0020H	;ax=0020H
	mov ds, ax		;ds=ax=0020H
	mov [bx], dl	;0020:0=dl=ffff:0
	inc bx			;bx++
	loop s			;最终实现的是把ffff:0到ffff:11处的值挪到0020:0到0020:11处
	
	mov ax, 4c00h
	int 21H
	
code ends
end

针对上一个程序的另一种写法:

assume cs:code
code segment 
		mov ax, 0ffffh	;ax=ffffH
		mov ds, ax		;ds=ax=ffffH
		mov ax, 0020h	;ax=0020H
		mov es, ax		;es=ax=0020H
		mov bx, 0		;bx=0
		mov cx, 12		;cx=12,循环12次
s:		mov dl, [bx]	;dl=ffff:0
		mov es:[bx], dl	;0020:0=dl=ffff:0
		inc bx			;bx++
		loop s			;最终实现的是把ffff:0到ffff:11处的值挪到0020:0到0020:11处
		
		mov ax, 4c00h
		int 21H
code ends
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-jazz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值