前言:
辣鸡web转pwn,
太难了,
只记录一些重点,不过可能会漏掉。
目录:
汇编指令:
mov ax,4E20H —> 将18送入寄存器AX,等同于 AX=18 ,这里H表示hex十六进制的意思,B表示二进制
add ax,8 —> 将寄存器AX的数值加上8,等同于 AX=AX+8
mov ax,bx —> 将寄存器BX中的数据送入寄存器AX
add ax,bx —> 将AX和BX中的数值相加,结果存在AX中
物理地址:
基础地址 + 偏移地址 = 物理地址
段地址 x16 + 偏移地址 = 物理地址
寄存器 CS和IP:
CS和IP 是 8086CPU 中两个关机寄存器
CS:IP 这两个寄存器指示了 CPU 当前将要读取的指令的地址
CS 为代码段寄存器, IP 为指令指针寄存器
举个粟子
比如,我有下面的两条指令要执行:
- mov ax,0123H
- mov ax,0000
很显然, 10000H:00000H 指向的是 mov ax,0123H 的首地址,
如果 CPU 要读取到我的指令的话,很显然,必须要知道地址 10000H:00000H ,
然后 CPU 就可以根据这个首地址,将汇编指令 mov ax,0123H 所对应的机器码(B8 23 01)读入到 CPU 的指令寄存器中,
最后便可以在 CPU 中进行处理了,
读入后 IP = IP+3 = 00003H ,因为一个机器码的长度为 1
大概就这样,理解就好。
总结:
简单写个笔记。