汇编
QQ276592716
这个作者很懒,什么都没留下…
展开
-
汇编除法优化~
汇编里面的除法优化就是乘以除数的倒数a/11 汇编代码:mov eax,2E8BA2E9imul ecxsar edx,1;edx中存放的是乘法运算的高位双字节,即相当于a*2E8BA2E9右移了32位,sar再移位1位,;edx=(a*2E8BA2E9)>>(32+1) =a*0.090909090940840542316436767原创 2011-06-07 22:17:00 · 2309 阅读 · 0 评论 -
DIY PPS~~
新年的第一篇文章~~,在看雪看了别人DIY PPS后自己试了下,把过程大致记录下吧~~首先,是OD载入PPStream.exe,然后bp ExitProcess,断下后,找到代码结束处后的一大堆00,找个地方开始patch00740664 6A 00 push 0x000740666 6A 00 push 0x00074066原创 2012-01-05 18:11:00 · 512 阅读 · 0 评论 -
对二取模的优化代码~
mov edx,[]and edx,80000001hjns short xxdec edxor edx,0FFFFFFFEhinc edxxx:...先送数到某个寄存器中,位运算保存寄存器的首位和末位(此时可能的值为-1,0,1),若为负数,jns不跳转。正数或者0跳转。 dec edx 这里对edx减1操作,结果必然为0x80000000(或者0x原创 2011-11-15 09:39:20 · 1237 阅读 · 0 评论 -
MOV EDI,EDI指令的解释(整理)
XP系统程序中开头的MOV EDI,EDI指令的解释:在VS .NET 2003的VC7\INCLUDE目录中的listing.inc文件中定义了1到7个字节的无破坏性NOP操作的宏MOV EDI,EDI 就是两个字节的NOP在程序中与NOP指令的意义相同。为什么要用MOV EDI,EDI 而不用两个NOP?我的理解是:用两个NOP指令耗费的CPU时钟周期原创 2011-11-24 11:39:53 · 7785 阅读 · 0 评论 -
王爽汇编语言第二版实验4(整理)
下面的程序的功能是将“mov ax, 4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。assume cs:codecode segment mov ax,--? mov ds,ax mov ax,0020h原创 2011-08-30 10:13:04 · 3782 阅读 · 0 评论 -
王爽汇编第二版实验16(整理)
实验16 程序 说明: 在进行这个实验时,往往会参考16.4给出的代码(四个子程序和直接定址表功能选择程序)如果安装16.4给出的功能子程序的安装程序习惯采用下面图1安装结构会出问题,问题有两个: 1:table dw sub1…原创 2011-09-06 19:15:35 · 2465 阅读 · 1 评论 -
王爽汇编第二版检测点15.1(整理)
对于15.1的答案精简为 pushf call dword ptr ds:[0] 我觉得似乎不用pushf了吧,因为这是中断例程,占用的是中断类型码9的中断向量, 那在中断发生时,中断过程中,标志寄存器入栈是cpu硬件完成的啊,而且IF和TF也都由硬件置0,干嘛还原创 2011-09-06 10:38:12 · 3925 阅读 · 5 评论 -
中断过程(记录)
1.取得中断类型码N;2.pushf3.TF=0,IF=04.PUSH CS5.PUSH IP6.(IP)=(N*4),(CS)=(N*4+2)原创 2011-09-05 08:08:58 · 580 阅读 · 0 评论 -
王爽汇编第十章课程设计精简设计~(整理)
assume cs:code data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1原创 2011-09-02 20:27:02 · 1312 阅读 · 0 评论 -
128位数据相加(整理)
ds:si指向第一个数,ds:di指向第二个数的内存空间push axpush cxpush sipush disub ax,axmov cx,8s:mov ax,[si] adc ax,[di] mov [si],ax inc si原创 2011-09-03 12:28:57 · 1603 阅读 · 1 评论 -
王爽汇编第二版实验9(整理)
实验9 编程: 在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串'welcome to masm!' 分析: 1 绿色: 0 000 0 010b(二进制) 十六进制 02h 绿底红色:0 010 0 100(二进制)十六进制 24h 白底原创 2011-08-31 18:47:10 · 2017 阅读 · 0 评论 -
王爽汇编第二版实验10(整理)
1.;--------------------------------------------------------------------------------------show_str: ;push指令保护子程序用到的寄存器 push原创 2011-09-01 19:17:26 · 5054 阅读 · 1 评论 -
王爽汇编第十章检测点10.5分析~(整理)
1.先看源程序: assume cs:code stack segment dw 8 dup (0) stack ends code segment start :mov ax,stack mov ss,ax mo原创 2011-09-01 13:46:11 · 4937 阅读 · 3 评论 -
计算字符串长度的优化代码·~
strlen的优化代码~~~ mov ecx,FFFFFFFFsub eax,eaxrepnz ;串操作直到ecx=0scasb ;把al内容与edi指定的在附加段中的数据逐个比较not ecx ;取反dec ecx ;一开始就是-1,取反等于多了一个1,所以这边减一je xxxxxx ~原创 2011-06-07 22:31:00 · 919 阅读 · 0 评论 -
汇编大小写转换的一个技巧~~
与11011111(DF)相与~~原创 2011-06-07 22:22:00 · 970 阅读 · 0 评论 -
尝试调试nsis程序(调试子进程)
任务:尝试调试nsis程序(调试子进程)问题:OD加载后下断点,无法断下程序。思路:怀疑是生成了子进程,下断点验证,确实生成了子进程。结论:nsis生成的exe在运行后先检查自身是否在C:\Users\admin\AppData\Local\Temp\下也就是常说的temp目录下,若在,检查命令行参数,若没有,会有Error launching installer的错误。反之,会将原创 2012-12-14 12:39:48 · 4106 阅读 · 0 评论