;數據傳送實例 (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
008.數據傳送實例含 movcx movsx xchg 的應用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.