摘要: #include #include //堆栈平衡原理//如果要返回父程序,则当我们在堆栈中进行堆栈的操作的时候,一定要保证在RET这条指令之前,ESP指向的是我们压入栈中的地址。//当执行call dword ptr[fun1]语句, esp=esp-4, push eip到堆栈void f... 阅读全文
posted @ 2015-07-09 17:06 鑫鑫1 阅读(834) 评论(0) 推荐(0)
摘要: C语言 内嵌汇编void main(){char ps[20] = "aaaaaaaaaa\n";char *p1 =ps;//用汇编语句改写下面2句代码ps[3]='b';printf(ps);}//等价的写法1:void main(){char ps[20] = "aaaaaaaaaa\n";c... 阅读全文
posted @ 2015-07-09 16:57 鑫鑫1 阅读(231) 评论(0) 推荐(0)
摘要: 分析程序1:C语言代码如下#include void fun(int na, int nb){int nc = na+nb;printf("one\n");}void fun1(){printf("two\n");}void main(){fun(55,66);fun1();}汇编代码. 详细标出e... 阅读全文
posted @ 2015-07-06 18:32 鑫鑫1 阅读(1410) 评论(0) 推荐(0)
摘要: 用法1:: jmp short 标号(转到标号处执行指令)这种格式的 jmp 指令实现的是段内短转移,它对IP的修改范围为 -128~127,也就是说,它向前转移时可以最多越过128个字节,向后转移可以最多越过127个字节。段内转移,只修改IP,比如jmp ax段间转移,同时修改CS和IP,比如jm... 阅读全文
posted @ 2015-06-03 17:57 鑫鑫1 阅读(2022) 评论(0) 推荐(1)
摘要: 计算机的最高位为符号位 1表示负数, 0表示正数8位,最多表示256个数, 范围 -128-1270111 1111 1271000 0001 -127规定 1000 0000 定为 -128的补码,就是-0, 也就是016位,最多表示65536个数, 范围 -32768-327670111 111... 阅读全文
posted @ 2015-06-03 15:18 鑫鑫1 阅读(359) 评论(0) 推荐(0)
摘要: div指令1.除数:有8位和16位两种,在一个寄存器或者内存中。2、被除数:默认放在AX或(DX和AX)中,如果除数为8位,被除数为16位,被除数默认在AX中存放,如果除数为16位,被除数为32位,被 除数则在(DX和AX)中存放,DX存放高16位,AX存放低16位。题目1assume cs:cod... 阅读全文
posted @ 2015-05-29 17:58 鑫鑫1 阅读(256) 评论(0) 推荐(0)
摘要: 一.8086 16位CPU寄存器16个寄存器:ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di通用寄存器:ax,bx,cx,dx 8位寄存器: ah,al,bh,bl,ch,cl,dh,dl,兼容8位cpu。sp:堆栈指针寄存器,指向栈顶bp:指针寄存器... 阅读全文
posted @ 2015-05-27 15:05 鑫鑫1 阅读(475) 评论(0) 推荐(0)
摘要: 程序0:把字符串 "adcdef"转换成大写, 把字符串 "FGHJK"转换成小写data segmentdb 'adcdef'db 'XCVBNM'data endscode segmentstart:mov ax,datamov ds,axmov bx,0mov cx,6mov di,0s:mo... 阅读全文
posted @ 2015-05-25 16:16 鑫鑫1 阅读(383) 评论(0) 推荐(0)
摘要: Win32 SDK中利用 DialogBox/DialogBoxParam 创建模态对话框一般行为是不处理WM_KEYDOWN消息的。非要处理可以子类化控件HANDLE hedit=GetDlgItem(hMainWnd,IDC_EDIT1);(WNDPROC)SetWindowLong(hedit... 阅读全文
posted @ 2015-04-21 14:40 鑫鑫1 阅读(630) 评论(0) 推荐(0)
摘要: PE头,区块索引 区块内存PE头,区块索引 区块内存PE头,区块索引 区块内存 阅读全文
posted @ 2015-03-16 10:17 鑫鑫1 阅读(224) 评论(0) 推荐(0)