008.數據傳送實例含 movcx movsx xchg 的應用

;數據傳送實例 (Moves.asm)

.386

.model flat,stdcall

.stack 4096

ExitProcess PROTO,dwExitCode:DWORD

.data
	val1 WORD 1000h
	val2 WORD 2000h
	arrayB BYTE 10h,20h,30h,40h
	arrayW WORD 100h,200h,300h
	arrayD DWORD 10000h,20000h

.code
	main PROC
		;演示MOVZX指令
		mov bx,0A69Bh
		movzx eax,bx			;EAX=0000A69Bh
		movzx edx,bl			;EDX=0000009Bh
		movzx cx,bl				;CX=009Bh
		;演示MOVSX指令
		mov bx,0A69Bh
		movsx eax,bx			;EAX=0000A69Bh
		movsx edx,bl			;EDX=0000009Bh
		mov bl,7Bh				
		movsx cx,bl				;CX=007Bh
		;內存-內存交換
		mov ax,val1				;AX=1000h
		xchg ax,val2			;AX=2000h,VAL2=1000h
		mov val1,ax				;VAL1=2000h
		;直接偏移量尋址(字節數組)
		mov al,arrayB			;AL=10h 這裏和C語言類似,第一個元素同時也蘊含着數組的首地址
		mov al,[arrayB+1]		;AL=20h 每次加一個一表示地址向後移動一個字節
		mov al,[arrayB+2]		;AL=30h
		;直接偏移量尋址(字數組)
		mov ax,arrayW			;AX=100h
		mov ax,[arrayW+2]		;AX=200h
		;直接偏移量尋址(雙字數組)
		mov eax,arrayD			;EAX=10000h
		mov eax,[arrayD+4]		;EAX=20000h

		INVOKE ExitProcess,0
	main ENDP
	END main
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章