2つのプログラムを書き込むための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
公開された78のオリジナル記事 いいね3 訪問5596

おすすめ

転載: blog.csdn.net/qq_43071318/article/details/105264397