DXとAXのダブルワードを右に4桁シフト

;把DX,AX中的双字右移四位。
assume cs:code
code segment
start:
	MOV DX, 0FFFFH
	MOV CL, 4  ;设置循环次数为4
	SHR AX, CL ;实现将AX逻辑右移
	MOV BL, DL ;将DL的低4位暂存在BL中
	SHR DX, CL ;实现将DX逻辑右移
	SHL BL, CL ;将BL逻辑左移
	OR  AH, BL ;将BL或上AH   ;也就是使DL的低4位或上AH高4位,从而实现了DX、AX中的双字右移四位。

	mov ax, 4c00H
	int 21H
code ends
end start

アイデア:DX + AXによって格納された8ビットの16進数(ダブルワード)の文字列が1234'5678の場合、4ビット右にシフトすると、明らかに0123'4567になります。 AXは4ビット右にシフトされ、結果は0123'0567です。4は失われます。ここで使用する方法は、最初に34を格納し、次に4ビットの左シフトを実行して、40になり、次に05とORするだけです。 45になりますので、合わせると0123'4567となります。

公開された78のオリジナル記事 いいね3 訪問5596

おすすめ

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