1.基本知识回顾
1.MessageBox函数
PS:这个函数出现的频率太高了,建议记下来(以防考试)。
函数原型:
int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT UType);
参数:
hWnd:标识将被创建的消息框的拥有窗口。如果此参数为NULL,则消息框没有拥有窗口。
lpText:指向一个以NULL结尾的、含有将被显示的消息的字符串的指针。
lpCaption:指向一个以NULL结尾的、用于对话框标题的字符串的指针。
uType:指定一个决定对话框的内容和行为的位标志集。
2.测试指令TEST和CMP
- AND
了解TEST之前先来看:逻辑与指令AND
逻辑与的运算规则是:进行逻辑与运算的两位都是逻辑1,则结果为1;否则,结果都是0。
(与相当于乘法,或 (or) 相当于加法)
也就是说,逻辑0和逻辑0相与的结果为0,逻辑0和逻辑1相与的结果为0,逻辑1和逻辑0相与的结果为0,只有逻辑1和逻辑1相与的结果才为1。
and reg,imm/reg/mem ;逻辑与:reg=reg^imm/reg/mem
and mem,imm/reg ;逻辑与:mem=mem^imm/reg
and指令支持的目的操作数是寄存器和存储单元,源操作数是立即数、寄存器和存储单元,但不能都是存储器操作数。
它设置标志CF=OF=0,(进位和溢出为都是0),根据结果按定义影响SF,ZF,PF(符号、零标志、奇偶标志)
- TEST
测试指令TEST将两个操作数按位进行逻辑与运算。格式如下:
test reg,imm/reg/mem ;逻辑与:reg^imm/reg/mem
test mem,imm/reg ;逻辑与:mem^imm/reg
Test指令不返回逻辑与结果,只根据结果像AND指令一样来设置状态标志。TEST指令通常用于检测一些