下面是一些包含汇编指令 MOV、PUSH、POP、LEA、LDS、ADD、ADC、INC、SUB、SBB、DEC、CMP、MUL、DIV、AND、OR、XOR、NOT、TEST、SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR、LODS、MOVS 的例题。这些例题展示了每条指令的用法及其作用。
1. MOV 指令
assembly
MOV AX, BX ; 将寄存器 BX 的值复制到寄存器 AX
MOV AX, [SI] ; 将 SI 寄存器指向的内存位置的值加载到 AX
MOV [DI], AX ; 将 AX 的值存储到 DI 寄存器指向的内存位置
2. PUSH 指令
assembly
PUSH AX ; 将寄存器 AX 的值压入堆栈
PUSH BX ; 将寄存器 BX 的值压入堆栈
3. POP 指令
assembly
POP AX ; 从堆栈弹出一个值到寄存器 AX
POP BX ; 从堆栈弹出一个值到寄存器 BX
4. LEA 指令
assembly
LEA DX, [BX+SI] ; 将有效地址 BX+SI 加载到 DX
LEA AX, [BP+2] ; 将 BP+2 的地址加载到 AX
5. LDS 指令
assembly
LDS SI, [BP] ; 加载 DS:SI 指针,用 BP 指向的内存内容
6. ADD 指令
assembly
ADD AX, BX ; 将 BX 的值加到 AX
ADD AL, 5 ; 将 5 加到 AL
7. ADC 指令
assembly
ADC AX, BX ; 带进位的 AX 加 BX
8. INC 指令
assembly
INC AX ; 将 AX 加 1
INC [SI] ; 将 SI 指向的内存位置的值加 1
9. SUB 指令
assembly
SUB AX, BX ; 将 BX 从 AX 中减去
SUB AL, 10 ; 将 10 从 AL 中减去
10. SBB 指令
assembly
SBB AX, BX ; 带借位的 AX 减去 BX
11. DEC 指令
assembly
DEC AX ; 将 AX 减 1
DEC [SI] ; 将 SI 指向的内存位置的值减 1
12. CMP 指令
assembly
CMP AX, BX ; 比较 AX 和 BX
CMP AL, 10 ; 比较 AL 和 10
13. MUL 指令
assembly
MUL BX ; 无符号乘法 AX = AL * BX 或者 DX:AX = AX * BX
14. DIV 指令
assembly
DIV BX ; 无符号除法 AX = DX:AX / BX
15. AND 指令
assembly
AND AX, BX ; 按位与 AX 和 BX
AND AL, 0Fh ; 按位与 AL 和 0Fh
16. OR 指令
assembly
OR AX, BX ; 按位或 AX 和 BX
OR AL, 0Fh ; 按位或 AL 和 0Fh
17. XOR 指令
assembly
XOR AX, BX ; 按位异或 AX 和 BX
XOR AL, 0Fh ; 按位异或 AL 和 0Fh
18. NOT 指令
assembly
NOT AX ; 按位取反 AX
19. TEST 指令
assembly
TEST AX, BX ; 按位与 AX 和 BX,但不存储结果,只修改标志位
TEST AL, 01h ; 测试 AL 的最低位
20. SHL 指令
assembly
SHL AX, 1 ; 左移 AX 中的所有位,移出位进入进位标志
SHL AX, CL ; 左移 AX 中的所有位,移位数由 CL 指定
21. SAL 指令
assembly
SAL AX, 1 ; 算术左移 AX 中的所有位
22. SHR 指令
assembly
SHR AX, 1 ; 逻辑右移 AX 中的所有位
SHR AX, CL ; 逻辑右移 AX 中的所有位,移位数由 CL 指定
23. SAR 指令
assembly
SAR AX, 1 ; 算术右移 AX 中的所有位
24. ROL 指令
assembly
ROL AX, 1 ; 循环左移 AX 中的所有位
25. ROR 指令
assembly
ROR AX, 1 ; 循环右移 AX 中的所有位
26. RCL 指令
assembly
RCL AX, 1 ; 通过进位标志循环左移 AX 中的所有位
27. RCR 指令
assembly
RCR AX, 1 ; 通过进位标志循环右移 AX 中的所有位
28. LODS 指令
assembly
LODSB ; 将 DS:SI 指向的字节加载到 AL,并递增或递减 SI
LODSW ; 将 DS:SI 指向的字加载到 AX,并递增或递减 SI
29. MOVS 指令
assembly
MOVSB ; 将 DS:SI 指向的字节移动到 ES:DI 指向的位置,并递增或递减 SI 和 DI
MOVSW ; 将 DS:SI 指向的字移动到 ES:DI 指向的位置,并递增或递减 SI 和 DI