📄 chap2-2.htm.primary
字号:
<html>
<head>
<title>Crack Tutorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="style/css.css" type="text/css">
<link rel="stylesheet" href="../STYLE/Css.css" type="text/css">
</head>
<body bgcolor="white" text="#000000" link="#004080" vlink="#004080" background="../image/Back.gif">
<p><a href="../catalog.htm">目录</a>>>第2章</p>
<p align="center" class="shadow1Copy"><b class="p3">第2章 基础知识</b><span class="p9"> </span></p>
<table width="80%" border="0" cellspacing="0" cellpadding="3" align="center" bgcolor="#bcbcbc" bordercolor="#111111" class="shadow1">
<tr>
<td class="shadow1">
<div align="center"><span class="p9">第一节 <a href="Chap2-1.htm"><font color="#FFFFFF">软件保护</font></a><font color="#FFFFFF"></font></span></div>
</td>
<td class="shadow1">
<div align="center"><span class="p9">第二节 <a href="Chap2-2.htm"><font color="#FFFFFF">汇编语言</font></a></span></div>
</td>
<td class="shadow1">
<div align="center"><span class="p9">第三节 <a href="Chap2-3.htm"><font color="#FFFFFF">汇编跳转</font></a></span></div>
</td>
<td class="shadow1">
<div align="center"><span class="p9">第四节 <a href="Chap2-4.htm"><font color="#FFFFFF">浮点指令</font></a></span></div>
</td>
<td class="shadow1">
<div align="center"><span class="p9">第五节 <a href="Chap2-5.htm"><font color="#FFFFFF">分析技术</font></a></span></div>
</td>
</tr>
</table>
<blockquote>
<p align="center"><b>第二节 8088 汇编速查手册 </b>
</p>
</blockquote>
<p> <br>
一、数据传输指令 <br>
─────────────────────────────────────── <br>
它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. <br>
1. 通用数据传送指令. <br>
MOV 传送字或字节. <br>
MOVSX 先符号扩展,再传送. <br>
MOVZX 先零扩展,再传送. <br>
PUSH 把字压入堆栈. <br>
POP 把字弹出堆栈. <br>
PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. <br>
POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.
<br>
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.
<br>
POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.
<br>
BSWAP 交换32位寄存器里字节的顺序 <br>
XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)
<br>
CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) <br>
XADD 先交换再累加.( 结果在第一个操作数里 ) <br>
XLAT 字节查表转换. <br>
── BX 指向一张 256 字节的表的起点,
AL 为表的索引值 (0-255,即 <br>
0-FFH); 返回 AL 为查表结果.
( [BX+AL]->AL ) <br>
2. 输入输出端口传送指令. <br>
IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX}
) <br>
OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器
) <br>
输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,
<br>
其范围是 0-65535. <br>
3. 目的地址传送指令. <br>
LEA 装入有效地址. <br>
例: LEA DX,string ;把偏移地址存到DX. <br>
LDS 传送目标指针,把指针内容装入DS. <br>
例: LDS SI,string ;把段地址:偏移地址存到DS:SI.
<br>
LES 传送目标指针,把指针内容装入ES. <br>
例: LES DI,string ;把段地址:偏移地址存到ES:DI.
<br>
LFS 传送目标指针,把指针内容装入FS. <br>
例: LFS DI,string ;把段地址:偏移地址存到FS:DI.
<br>
LGS 传送目标指针,把指针内容装入GS. <br>
例: LGS DI,string ;把段地址:偏移地址存到GS:DI.
<br>
LSS 传送目标指针,把指针内容装入SS. <br>
例: LSS DI,string ;把段地址:偏移地址存到SS:DI.
<br>
4. 标志传送指令. <br>
LAHF 标志寄存器传送,把标志装入AH. <br>
SAHF 标志寄存器传送,把AH内容装入标志寄存器. <br>
PUSHF 标志入栈. <br>
POPF 标志出栈. <br>
PUSHD 32位标志入栈. <br>
POPD 32位标志出栈. <br>
<br>
二、算术运算指令 <br>
─────────────────────────────────────── <br>
ADD 加法. <br>
ADC 带进位加法. <br>
INC 加 1. <br>
AAA 加法的ASCII码调整. <br>
DAA 加法的十进制调整. <br>
SUB 减法. <br>
SBB 带借位减法. <br>
DEC 减 1. <br>
NEC 求反(以 0 减之). <br>
CMP 比较.(两操作数作减法,仅修改标志位,不回送结果). <br>
AAS 减法的ASCII码调整. <br>
DAS 减法的十进制调整. <br>
MUL 无符号乘法. <br>
IMUL 整数乘法. <br>
以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), <br>
AAM 乘法的ASCII码调整. <br>
DIV 无符号除法. <br>
IDIV 整数除法. <br>
以上两条,结果回送: <br>
商回送AL,余数回送AH, (字节运算); <br>
或 商回送AX,余数回送DX, (字运算). <br>
AAD 除法的ASCII码调整. <br>
CBW 字节转换为字. (把AL中字节的符号扩展到AH中去) <br>
CWD 字转换为双字. (把AX中的字的符号扩展到DX中去) <br>
CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去) <br>
CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)
<br>
<br>
三、逻辑运算指令 <br>
─────────────────────────────────────── <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -