作者:傻猫
发布时间:July 24, 2008
分类:工具软件
继上周末的Mac版后,iPhone Dev Team终于放出了广大Windows用户翘首以盼的iPhone 2.0固件解锁(Unlock)、破解(Jailbreak)工具WinPwn 2.0。和Mac版本一样,目前的WinPwn目前还不能解锁iPhone 3G使用非绑定运营商的SIM卡。现已实现的功能包括:2.0版固件旧款iPhone的解锁(Unlock)+破解(Jailbreak),iPod touch 2.0版以及iPhone 3G的破解(Jailbreak)。
使用该软件需要首先安装iTunes 7.7,并下载苹果官方的2.0版固件,在该软件中打上破解补丁后再进行升级。

2.0版固件官方下载:
http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4956.20080710.V50OI/iPhone1,1_2.0_5A347_Restore.ipsw
WinPwn下载:
http://rapidshare.de/files/40068012/winpwn_2.0.0.1_Setup.zip.html
镜像2
http://rapidshare.com/files/132009636/winpwn_2.0.0.1_Setup.zip
作者:傻猫
发布时间:October 8, 2007
分类:傻猫杂谈
今天一个朋友发了一个软件让偶破解,首先反编译后,OD载入,修改00540B26 0F85F4000000 jnz 00540C20
将jnz 改为 jz,随便输入什么字母均可以注册成功!
历史上最完美的注册版诞生了!
delphi代码
- * Reference to: Controls.TControl.GetText(TControl):TCaption;
- |
- 00540B06 E849DBF1FF call 0045E654
- 00540B0B 8D951CFEFFFF lea edx, [ebp+$FFFFFE1C]
- 00540B11 8BC6 mov eax, esi
-
- |
- 00540B13 E8E0FEFFFF call 005409F8
- 00540B18 8B951CFEFFFF mov edx, [ebp+$FFFFFE1C]
- 00540B1E 8B45FC mov eax, [ebp-$04]
-
- * Reference to: System.@LStrCmp;
- |
- 00540B21 E89E43ECFF call 00404EC4
- 00540B26 0F85F4000000 jnz 00540C20
- 00540B2C 8D55F8 lea edx, [ebp-$08]
- 00540B2F 33C0 xor eax, eax
作者:傻猫
发布时间:September 28, 2007
分类:工具软件
Foxit Reader 2.0 是一款免费的PDF文档阅读器和打印器,具有令人难以置信的小巧体积、快捷的启动速度和丰富的功能。软件添加了许多新功能特征,比如交互式表单填充功能、多国语言界面的动态切换、丰富可选的按需插件下载、便利快速的程序自动更新升级、JavaScript支持、改良的打印速度和简洁流畅的用户界面等等。软件特点突出表现在:
难以置信的小巧体积:只占 Acrobat Reader 容量的一小部分。
快捷的启动速度:瞬间就可启动 Foxit Reader,完全没有那些恼人的公司LOGO和作者名称的启动画面。
批注工具:当您阅读PDF文档,是否曾想过对文档进行批注呢?有了 Foxit Reader Pro 2.0,您完全可以在文档上画图、高亮化文本、输入文字,并且对批注的文档进行打印或保存。
文本转换器:将整份PDF文档转换为文本文件。
高度安全性和隐私性:Foxit Reader 高度尊重用户的安全性和隐私性,没有用户的许可不会主动访问互联网。而别的Reader却会在用户不知晓的情况下,主动从后台连接到互联网。Foxit Reader 完全不带有任何的间谍软件或广告软件。
下载地址: http://down.samool.com/Foxit Reader 2.1 Build 2023.rar
解压密码: samool.com
作者:傻猫
发布时间:July 31, 2007
分类:Delphi
今天中午小试牛刀,一个朋友发了一个软件给我,让我看看能不能破解,我拿到软件后,运行,用SPY++拖到界面上看了一下,原来是Delphi写的软件,这时已经有20%的把握了,再用peid看一下加壳没有,发现乌龟没顶壳,哈哈哈,这下又增加20%的把握,接着DeDe进行反编译,得到汇编代码,输出工程文件,用Delphi打开该工程,找到注册窗口,直接进入注册函数,得到如下代码,简单看了一下,直接跳过注册判断,直接注册。用OllyICE修改汇编代码,保存文件,运行,注册,随便输入注册码,注册成功,搞定,收工。
XML/HTML代码
- procedure TFrmReg.Button2Click(Sender : TObject);
- begin
- (*
- 005404E8 55 push ebp
- 005404E9 8BEC mov ebp, esp
- 005404EB 81C410FEFFFF add esp, $FFFFFE10
- 005404F1 53 push ebx
- 005404F2 56 push esi
- 005404F3 57 push edi
- 005404F4 33C9 xor ecx, ecx
- 005404F6 898D14FEFFFF mov [ebp+$FFFFFE14], ecx
- 005404FC 898D10FEFFFF mov [ebp+$FFFFFE10], ecx
- 00540502 898D18FEFFFF mov [ebp+$FFFFFE18], ecx
- 00540508 898D1CFEFFFF mov [ebp+$FFFFFE1C], ecx
- 0054050E 898D20FEFFFF mov [ebp+$FFFFFE20], ecx
- 00540514 894DFC mov [ebp-$04], ecx
- 00540517 894DF8 mov [ebp-$08], ecx
- 0054051A 894DF4 mov [ebp-$0C], ecx
- 0054051D 894DF0 mov [ebp-$10], ecx
- 00540520 8BF0 mov esi, eax
- 00540522 33C0 xor eax, eax
- 00540524 55 push ebp
-
- * Possible String Reference to: '閣<?胄_^[嬪]?
- |
- 00540525 68BC065400 push $005406BC
-
- ***** TRY
- |
- 0054052A 64FF30 push dword ptr fs:[eax]
- 0054052D 648920 mov fs:[eax], esp
- 00540530 8D9520FEFFFF lea edx, [ebp+$FFFFFE20]
- 00540536 8B8608030000 mov eax, [esi+$0308]
-
- * Reference to: Controls.TControl.GetText(TControl):TCaption;
- |
- 0054053C E847E0F1FF call 0045E588
- 00540541 83BD20FEFFFF00 cmp dword ptr [ebp+$FFFFFE20], +$00
- 00540548 750F jnz 00540559
-
- * Possible String Reference to: '请输入注册码'
- |
- 0054054A B8D4065400 mov eax, $005406D4
-
- * Reference to: Dialogs.ShowMessage(AnsiString);
- |
- 0054054F E86C7EEFFF call 004383C0
- 00540554 E92D010000 jmp 00540686
- 00540559 8D55FC lea edx, [ebp-$04]
- 0054055C 8B8608030000 mov eax, [esi+$0308]
-
- * Reference to: Controls.TControl.GetText(TControl):TCaption;
- |
- 00540562 E821E0F1FF call 0045E588
- 00540567 8D951CFEFFFF lea edx, [ebp+$FFFFFE1C]
- 0054056D 8BC6 mov eax, esi
-
- |
- 0054056F E8E0FEFFFF call 00540454
- 00540574 8B951CFEFFFF mov edx, [ebp+$FFFFFE1C]
- 0054057A 8B45FC mov eax, [ebp-$04]
-
- * Reference to: System.@LStrCmp;
- |
- 0054057D E84249ECFF call 00404EC4
- 00540582 0F85F4000000 jnz 0054067C
- 00540588 8D55F8 lea edx, [ebp-$08]
- 0054058B 33C0 xor eax, eax
-
- * Reference to : TClientSocket._PROC_0050CC28()
- |
- 0054058D E896C6FCFF call 0050CC28
- 00540592 8B45F8 mov eax, [ebp-$08]
-
- * Reference to: System.@LStrLen(String):Integer;
- | or: System.@DynArrayLength;
- | or: System.DynArraySize(Pointer):Integer;
- | or: Variants.DynArraySize(Pointer):Integer;
- |
- 00540595 E8DE47ECFF call 00404D78
- 0054059A 8BD8 mov ebx, eax
- 0054059C 85DB test ebx, ebx
- 0054059E 7E32 jle 005405D2
- 005405A0 BF01000000 mov edi, $00000001
- 005405A5 8B45F8 mov eax, [ebp-$08]
- 005405A8 0FB64438FF movzx eax, byte ptr [eax+edi-$01]
- 005405AD 83C018 add eax, +$18
- 005405B0 8D8D18FEFFFF lea ecx, [ebp+$FFFFFE18]
- 005405B6 BA02000000 mov edx, $00000002
-
- * Reference to: SysUtils.IntToHex(Integer;Integer):AnsiString;overload;
- |
- 005405BB E83C94ECFF call 004099FC
- 005405C0 8B9518FEFFFF mov edx, [ebp+$FFFFFE18]
- 005405C6 8D45F4 lea eax, [ebp-$0C]
-
- * Reference to: System.@LStrCat;
- |
- 005405C9 E8B247ECFF call 00404D80
- 005405CE 47 inc edi
- 005405CF 4B dec ebx
- 005405D0 75D3 jnz 005405A5
- 将这句修改为 jmp 005405D2 或者删除这条语句即完成破解.
- 005405D2 8D9510FEFFFF lea edx, [ebp+$FFFFFE10]
- 005405D8 33C0 xor eax, eax
-
- * Reference to: System.ParamStr(Integer):String;
- |
- 005405DA E86925ECFF call 00402B48
- 005405DF 8B8510FEFFFF mov eax, [ebp+$FFFFFE10]
- 005405E5 8D9514FEFFFF lea edx, [ebp+$FFFFFE14]
-
- * Reference to: SysUtils.ExtractFilePath(AnsiString):AnsiString;
- |
- 005405EB E82499ECFF call 00409F14
- 005405F0 8B9514FEFFFF mov edx, [ebp+$FFFFFE14]
- 005405F6 8D45F0 lea eax, [ebp-$10]
-
- * Possible String Reference to: 'smsinfo'
- |
- 005405F9 B9EC065400 mov ecx, $005406EC
-
- * Reference to: System.@LStrCat3;
- |
- 005405FE E8C147ECFF call 00404DC4
- 00540603 8B45F0 mov eax, [ebp-$10]
-
- * Reference to: SysUtils.FileCreate(AnsiString):Integer;overload;
- |
- 00540606 E8B996ECFF call 00409CC4
-
- * Reference to: InGlobal.Sleep(Cardinal);
- | or: SConnect.CloseRegKey(HKEY);
- | or: System.EndThread(Integer);
- | or: SysUtils.FileClose(Integer);
- | or: SysUtils.StrNextChar(PChar):PChar;
- | or: Windows.LockSegment(System.THandle);
- |
- 0054060B E87097ECFF call 00409D80
- 00540610 8B55F0 mov edx, [ebp-$10]
- 00540613 8D8524FEFFFF lea eax, [ebp+$FFFFFE24]
-
- * Reference to: System.@Assign(TTextRec;TTextRec;String):Integer;
- |
- 00540619 E80E29ECFF call 00402F2C
- 0054061E 8D8524FEFFFF lea eax, [ebp+$FFFFFE24]
-
- * Reference to: System.@Append(TTextRec;TTextRec):Integer;
- |
- 00540624 E89F26ECFF call 00402CC8
-
- |
- 00540629 E85A23ECFF call 00402988
- 0054062E 8B55F4 mov edx, [ebp-$0C]
- 00540631 8D8524FEFFFF lea eax, [ebp+$FFFFFE24]
-
- * Reference to: Classes.TStream.WriteComponent(TStream;TComponent);
- | or: Classes.TWriter.WriteRootComponent(TWriter;TComponent);
- | or: DB.TWideStringField.GetAsWideString(TWideStringField):WideString;
- | or: DB.TDateTimeField.GetValue(TDateTimeField;TDateTime;TDateTime):Boolean;
- | or: DB.TSQLTimeStampField.GetValue(TSQLTimeStampField;TSQLTimeStamp;TSQLTimeStamp):Boolean;
- | or: DB.TSQLTimeStampField.SetAsSQLTimeStamp(TSQLTimeStampField;TSQLTimeStamp;TSQLTimeStamp);
- |
- 00540637 E8584BECFF call 00405194
-
- * Reference to: System.@WriteLn(TTextRec;TTextRec):Pointer;
- |
- 0054063C E89B2FECFF call 004035DC
-
- |
- 00540641 E84223ECFF call 00402988
- 00540646 8D8524FEFFFF lea eax, [ebp+$FFFFFE24]
-
- * Reference to: System.Flush(Text;Text):Integer;
- |
- 0054064C E88B29ECFF call 00402FDC
-
- |
- 00540651 E83223ECFF call 00402988
- 00540656 8D8524FEFFFF lea eax, [ebp+$FFFFFE24]
-
- * Reference to: System.@Close(TTextRec;TTextRec):Integer;
- |
- 0054065C E89329ECFF call 00402FF4
-
- |
- 00540661 E82223ECFF call 00402988
-
- * Possible String Reference to: '注册成功,请重启软件。'
- |
- 00540666 B8FC065400 mov eax, $005406FC
-
- * Reference to: Dialogs.ShowMessage(AnsiString);
- |
- 0054066B E8507DEFFF call 004383C0
- 00540670 C7864C02000001000000 mov dword ptr [esi+$024C], $00000001
- 0054067A EB0A jmp 00540686
-
- * Possible String Reference to: '注册失败,注册码不正确.'
- |
- 0054067C B81C075400 mov eax, $0054071C
-
- * Reference to: Dialogs.ShowMessage(AnsiString);
- |
- 00540681 E83A7DEFFF call 004383C0
- 00540686 33C0 xor eax, eax
- 00540688 5A pop edx
- 00540689 59 pop ecx
- 0054068A 59 pop ecx
- 0054068B 648910 mov fs:[eax], edx
-
- ****** FINALLY
- |
-
- * Possible String Reference to: '_^[嬪]?
- |
- 0054068E 68C3065400 push $005406C3
- 00540693 8D8510FEFFFF lea eax, [ebp+$FFFFFE10]
- 00540699 BA04000000 mov edx, $00000004
-
- * Reference to: System.@LStrArrayClr(void;void;Integer);
- |
- 0054069E E83944ECFF call 00404ADC
- 005406A3 8D8520FEFFFF lea eax, [ebp+$FFFFFE20]
-
- * Reference to: System.@LStrClr(void;void);
- |
- 005406A9 E80A44ECFF call 00404AB8
- 005406AE 8D45F0 lea eax, [ebp-$10]
- 005406B1 BA04000000 mov edx, $00000004
-
- * Reference to: System.@LStrArrayClr(void;void;Integer);
- |
- 005406B6 E82144ECFF call 00404ADC
- 005406BB C3 ret
-
-
- * Reference to: System.@HandleFinally;
- |
- 005406BC E9773CECFF jmp 00404338
- 005406C1 EBD0 jmp 00540693
-
- ****** END
- |
- 005406C3 5F pop edi
- 005406C4 5E pop esi
- 005406C5 5B pop ebx
- 005406C6 8BE5 mov esp, ebp
- 005406C8 5D pop ebp
- 005406C9 C3 ret
-
- *)
- end;
作者:傻猫
发布时间:June 28, 2007
分类:Delphi
软件的破解技术与保护技术这两者之间本身就是矛与盾的关系,它们是在互相斗争中发展进化的。这种技术上的较量归根到底是一种利益的冲突。软件开发者为了维护自身的商业利益,不断地寻找各种有效的技术来保护自身的软件版权,以增加其保护强度,推迟软件被破解的时间;而破解者则或受盗版所带来的高额利润的驱使,或出于纯粹的个人兴趣,而不断制作新的破解工具并针对新出现的保护方式进行跟踪分析以找到相应的破解方法。从理论上说,几乎没有破解不了的保护。对软件的保护仅仅靠技术是不够的,而这最终要靠人们的知识产权意识和法制观念的进步以及生活水平的提高。但是如果一种保护技术的强度强到足以让破解者在软件的生命周期内无法将其完全破解,这种保护技术就可以说是非常成功的。软件保护方式的设计应在一开始就作为软件开发的一部分来考虑,列入开发计划和开发成本中,并在保护强度、成本、易用性之间进行折衷考虑,选择一个合适的平衡点。
在桌面操作系统中,微软的产品自然是独霸天下,一般个人用户接触得最多,研究得自然也更多一些。在DOS时代之前就有些比较好的软件保护技术,而在DOS中使用得最多的恐怕要算软盘指纹防拷贝技术了。由于DOS操作系统的脆弱性,在其中运行的普通应用程序几乎可以访问系统中的任何资源,如直接访问任何物理内存、直接读写任何磁盘扇区、直接读写任何I/O端口等,这给软件保护者提供了极大的自由度,使其可以设计出一些至今仍为人称道的保护技术;自Windows 95开始(特别是WinNT和Windows 2000这样严格意义上的多用户操作系统),操作系统利用硬件特性增强了对自身的保护,将自己运行在Ring 0特权级中,而普通应用程序则运行在最低的特权级Ring 3中,限制了应用程序所能访问的资源,使得软件保护技术在一定程度上受到一些限制。开发者要想突破Ring 3的限制,一般需要编写驱动程序,如读写并口上的软件狗的驱动程序等,这增加了开发难度和周期,自然也增加了成本。同时由于Win32程序内存寻址使用的是相对来说比较简单的平坦寻址模式(相应地其采用的PE文件格式也比以前的16-bit的EXE程序的格式要容易处理一些),并且Win32程序大量调用系统提供的API,而Win32平台上的调试器如SoftICE等恰好有针对API设断点的强大功能,这些都给跟踪破解带来了一定的方便。
一、数据传输指令
───────────────────────────────────────
它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.
1. 通用数据传送指令.
MOV 传送字或字节.
MOVSX 先符号扩展,再传送.
MOVZX 先零扩展,再传送.
PUSH 把字压入堆栈.
POP 把字弹出堆栈.
PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.
POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.
POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.
BSWAP 交换32位寄存器里字节的顺序
XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)
CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )
XADD 先交换再累加.( 结果在第一个操作数里 )
XLAT 字节查表转换.
── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即
0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )
2. 输入输出端口传送指令.
IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )
OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )
输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,
其范围是 0-65535.
3. 目的地址传送指令.
LEA 装入有效地址.
例: LEA DX,string ;把偏移地址存到DX.
LDS 传送目标指针,把指针内容装入DS.
例: LDS SI,string ;把段地址:偏移地址存到DS:SI.
LES 传送目标指针,把指针内容装入ES.
例: LES DI,string ;把段地址:偏移地址存到ES:DI.
LFS 传送目标指针,把指针内容装入FS.
例: LFS DI,string ;把段地址:偏移地址存到FS:DI.
LGS 传送目标指针,把指针内容装入GS.
例: LGS DI,string ;把段地址:偏移地址存到GS:DI.
LSS 传送目标指针,把指针内容装入SS.
例: LSS DI,string ;把段地址:偏移地址存到SS:DI.
4. 标志传送指令.
LAHF 标志寄存器传送,把标志装入AH.
SAHF 标志寄存器传送,把AH内容装入标志寄存器.
PUSHF 标志入栈.
POPF 标志出栈.
PUSHD 32位标志入栈.
POPD 32位标志出栈.
二、算术运算指令
───────────────────────────────────────
ADD 加法.
ADC 带进位加法.
INC 加 1.
AAA 加法的ASCII码调整.
DAA 加法的十进制调整.
SUB 减法.
SBB 带借位减法.
DEC 减 1.
NEC 求反(以 0 减之).
CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).
AAS 减法的ASCII码调整.
DAS 减法的十进制调整.
MUL 无符号乘法.
IMUL 整数乘法.
以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),
AAM 乘法的ASCII码调整.
DIV 无符号除法.
IDIV 整数除法.
以上两条,结果回送:
商回送AL,余数回送AH, (字节运算);
或 商回送AX,余数回送DX, (字运算).
AAD 除法的ASCII码调整.
CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)
CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)
CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去)
CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)
三、逻辑运算指令
───────────────────────────────────────
AND 与运算.
OR 或运算.
XOR 异或运算.
NOT 取反.
TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).
SHL 逻辑左移.
SAL 算术左移.(=SHL)
SHR 逻辑右移.
SAR 算术右移.(=SHR)
ROL 循环左移.
ROR 循环右移.
RCL 通过进位的循环左移.
RCR 通过进位的循环右移.
以上八种移位指令,其移位次数可达255次.
移位一次时, 可直接用操作码. 如 SHL AX,1.
移位>1次时, 则由寄存器CL给出移位次数.
如 MOV CL,04
SHL AX,CL
四、串指令
───────────────────────────────────────
DS:SI 源串段寄存器 :源串变址.
ES:DI 目标串段寄存器:目标串变址.
CX 重复次数计数器.
AL/AX 扫描值.
D标志 0表示重复操作中SI和DI应自动增量; 1表示应自动减量.
Z标志 用来控制扫描或比较操作的结束.
MOVS 串传送.
( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )
CMPS 串比较.
( CMPSB 比较字符. CMPSW 比较字. )
SCAS 串扫描.
把AL或AX的内容与目标串作比较,比较结果反映在标志位.
LODS 装入串.
把源串中的元素(字或字节)逐一装入AL或AX中.
( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. )
STOS 保存串.
是LODS的逆过程.
REP 当CX/ECX<>0时重复.
REPE/REPZ 当ZF=1或比较结果相等,且CX/ECX<>0时重复.
REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0时重复.
REPC 当CF=1且CX/ECX<>0时重复.
REPNC 当CF=0且CX/ECX<>0时重复.
五、程序转移指令
───────────────────────────────────────
1>无条件转移指令 (长转移)
JMP 无条件转移指令
CALL 过程调用
RET/RETF过程返回.
2>条件转移指令 (短转移,-128到+127的距离内)
( 当且仅当(SF XOR OF)=1时,OP1<OP2 )
JA/JNBE 不小于或不等于时转移.
JAE/JNB 大于或等于转移.
JB/JNAE 小于转移.
JBE/JNA 小于或等于转移.
以上四条,测试无符号整数运算的结果(标志C和Z).
JG/JNLE 大于转移.
JGE/JNL 大于或等于转移.
JL/JNGE 小于转移.
JLE/JNG 小于或等于转移.
以上四条,测试带符号整数运算的结果(标志S,O和Z).
JE/JZ 等于转移.
JNE/JNZ 不等于时转移.
JC 有进位时转移.
JNC 无进位时转移.
JNO 不溢出时转移.
JNP/JPO 奇偶性为奇数时转移.
JNS 符号位为 "0" 时转移.
JO 溢出转移.
JP/JPE 奇偶性为偶数时转移.
JS 符号位为 "1" 时转移.
3>循环控制指令(短转移)
LOOP CX不为零时循环.
LOOPE/LOOPZ CX不为零且标志Z=1时循环.
LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.
JCXZ CX为零时转移.
JECXZ ECX为零时转移.
4>中断指令
INT 中断指令
INTO 溢出中断
IRET 中断返回
5>处理器控制指令
HLT 处理器暂停, 直到出现中断或复位信号才继续.
WAIT 当芯片引线TEST为高电平时使CPU进入等待状态.
ESC 转换到外处理器.
LOCK 封锁总线.
NOP 空操作.
STC 置进位标志位.
CLC 清进位标志位.
CMC 进位标志取反.
STD 置方向标志位.
CLD 清方向标志位.
STI 置中断允许位.
CLI 清中断允许位.
六、伪指令
───────────────────────────────────────
DW 定义字(2字节).
PROC 定义过程.
ENDP 过程结束.
SEGMENT 定义段.
ASSUME 建立段寄存器寻址.
ENDS 段结束.
END 程序结束.