标签:处理 第四章 访问内存 执行 一个 debug 逻辑 系统 ida
以下所有的总结基于我只学了前五章的前提下,可能会有错误
在内存中把指令和数据区别开来:cs:ip指向的内存中的”数据“就是cpu认为的指令。
一个储存单元:2个16进制数字,8位,1个字节
cpu将系统中各类内存器看作一个逻辑内存器
8086cpu的所有寄存器都是16位的
8086cpu中 1个字 = 2个字节
xx位cpu指的是:运算器一次处理的数据位数,寄存器位数,计算器与运算器之间通路的位数
8086有20位地址总线,用两个寄存器(段地址,偏移地址)来表示内存地址,具体计算方法是(段地址*16+偏移地址)就是内存地址
段地址的起始地址只能是16的倍数(段地址*16,偏移量为0)
cs:ip指向下一个要执行指令的地址
修改cs:ip : jmp cs:ip
debug用法
一个字的地址是这个字的低8位所在的内存地址
访问内存数据 ds:[bx]
add,sub 不可以操作段寄存器
ss:sp指向栈顶
assume cs: code
code segment
...
mov ax,4c00h
int 21h
code ends
end
loop s:(cx) = (cx)-1, 如果cx不为0,ip跳到s的位置,否则往下执行
0:200-0:2ff是安全的空间
标签:处理 第四章 访问内存 执行 一个 debug 逻辑 系统 ida
原文地址:https://www.cnblogs.com/rookiezjz/p/12688761.html