汇编
指令和数据的表示
总线 地址总线 - 寻址能力 数据总线 - 数据传送能力 控制总线 - 多少种控制 - 控制能力
cpu对存储器的读写
ram 有 主板上的ram 扩展槽上的ram 内存条 显卡上的ram |主板上的ram | 扩展槽上的ram | |- 内存条 -|- 显卡上的ram-|
统一编写地址
8086pc为例
ms dos dos虚拟机
推荐 dos模拟器
访问寄存器和内存
寄存器
最大FFFF
ax- ah al
字长 - 字 word -16位
mov add
汇编不区分大小写
溢出问题
mov ah 0 …
八位加八位 进位的话直接丢掉 不会进到前面
物理地址
都是十六位寄存器 那么他的内部存储 暂存 传输能力也就是16位 - 64KB
20位 物理地址=段地址*16 偏移地址
段地址–内存没有分段 端的划分是cpu做的!!-他自己用的时候怎么分都行
CS DS SS ES
中文名. 代码段寄存器. 外文名. Code Segment. 在CPU执行指令时,通过代码段寄存器(CS,Code Segment)和指令指针寄存器( IP,Instruction Pointer)来确定要执行的下一条指令的内存地址。 在CPU中类似的寄存器有: DS:是 Data Segment 的缩写,翻译为“数据段寄存器”; SS:是 Stack Segment 的缩写,翻译为“堆栈段寄存器”; ES:是 Extra Segment 的缩写,翻译为“附加段寄存器”。
debug 调试程序 看cpu各种寄存器
Debug 神仙
rax ffff改ax
d
一行16B 一次列出128B
d 2000:0 2f 从0到2f
e改变内存neirong
e改变内存
u 将内存中的机器指令翻译为汇编指令 u 地址
手写汇编@@@!!!
A 一汇编格式在内存中写入机器指令 -常用
t执行cs:ip ;;;q退出debug
代码的执行
跳转指令jmp-用户不可能debug来做 必须要有这个指令
jmp 3:0b16同时修改cs ip 也可只修改ip
内存中的字 64位=64位一个字–寄存器大小
注意:4e 20在内存中的存放–低字节在低地址 高字节在高地址 存放为20 4e—读的时候先读高地址单元 在读低地址单元
这样看起来读起来更顺 反过来画内存就可以从上往下读了
错误做法
字单元–对于16位机器-两个连续地址的内存单元组成
ds和【address】配合实现字的传送,从内存中读数据
默认 段地址是ds-----------电路设计