汇编
文章平均质量分 55
eskimoer
这个作者很懒,什么都没留下…
展开
-
8086中的寄存器
1 寄存器的分类通用寄存器:ax,bx,cx,dx,(ah,al,bh,bl,ch,cl,dh,dl);sp,bp,si,di指令寄存器:ip标志寄存器:FR段寄存器:cs,ds,ss,es2 ax,bx,cx,dx这四个寄存器存放一般数据,你可以在里面存放任何数据,但是其用途会有不同。AX (Accumulator):累加寄存器,也称之为累原创 2014-06-17 18:30:48 · 5402 阅读 · 1 评论 -
8086汇编之 CALL 和 RET指令
Ret 和 call 也是转移指令,但是他们跟jmp不同的是,这两个转移指令都跟栈有关系。 ret 用栈中的数据修改IP的地址,从而实现近转移( ip ) = ( (ss)*16+ sp )( sp ) =( sp ) + 2相当于pop ipretf用栈中的数据来修改CS以及IP的值,实现段间转移( ip ) = ( (ss)*16+ sp )( sp ) =原创 2014-06-19 21:50:49 · 8357 阅读 · 0 评论 -
8086定义数据的方法
13 8086中定义数据的方法db 一个字节dw 一个字表示两个字节dd 两个字,表示4个字节dup 表示数据重复的指令db N dup(xx) ;//dup表示定义的数据,N表示重复的个数dw N dup(xx) ;// dup表示定义的数据,N表示重复的个数dd N dup(xx) ;// dup表示定义的数据,N表示重复的个数data se原创 2014-06-19 22:18:35 · 5837 阅读 · 0 评论 -
8086中的jmp相关指令
能修改CS以及IP的指令都是转移指令。它分为段内转移,段间转移。段内转移:只修改IP的值段间转移:同时修改CS以及IP的值 段内转移根据转移的距离远近分为:短转移,近转移短转移:转移范围为-128 – 127近转移:转移范围为-32768 –32767 根据转移情况又分为:无条件转移指令条件转移指令循环指令过程中断 jmp short原创 2014-06-17 16:36:20 · 3271 阅读 · 0 评论 -
8086 七种寻址方式
8086/8088 CPU寻址方式 立即寻址操作数在指令中,紧跟在操作码之后,这样的操作数成为立即数,可以是8bit或者16bit。 例如: MOV AL,12H MOV AX,1234H 直接寻址 操作数的地址中的偏移量直接跟在操作码之后,默认情况下基址存放在DS中,这个时候不需要加前缀,如果是加了别的前缀,如ES,则表示基址在ES原创 2014-06-19 23:54:49 · 19449 阅读 · 0 评论 -
8086FLAG寄存器
8086中的FLAG寄存器也就是状态标志位寄存器,它用来存储一些指令的计算结果,例如加法减法中的进位;为CPU执行某些命令提供依据,例如DF它决定是往前走指针还是向后走指针;总之状态寄存器存放的被称为程序状态字(PSW)。 8086中的寄存器一共有如下所示:1 ZF(0标志)指令的执行结果为0,就ZF=1,否则ZF为0。MOV AX, 1SUB原创 2014-06-22 21:25:28 · 2682 阅读 · 0 评论 -
C++ 函数反汇编跟踪以及栈结构分析
#include using namespace std; int func(int a,int b); void main(){ intx = 1; inty = 2; intz = func(x,y);} int func(int a,int b){ returna + b;}汇编解析原创 2013-10-14 22:48:16 · 3248 阅读 · 0 评论