其他分享
首页 > 其他分享> > 数据传输示例 Moves.asm

数据传输示例 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, 50h
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 = FFFFA69Bh
movsx edx, bl			;// EDX = FFFFFF9Bh
mov bl, 7Bh
movsx cx, bl			;// CX = 007Bh

;// 内存 - 内存交换
mov ax, val1			;// AL = 1000h
xchg ax, val2			;// AX = 2000h, val2 = 1000h
mov val1, ax			;// val1 = 2000h

;// 直接 - 偏移量寻址(字节数组)
mov al, arrayB			;// AL = 10h
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

标签:示例,bl,mov,EAX,ax,val1,Moves,bx,asm
来源: https://blog.csdn.net/Kwansy/article/details/104883759