【汇编语言王爽】笔记1-p1-p17

发布于:2023-01-10 ⋅ 阅读:(220) ⋅ 点赞:(0)

汇编
在这里插入图片描述
指令和数据的表示
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
总线
地址总线 - 寻址能力
数据总线 - 数据传送能力
控制总线 - 多少种控制 - 控制能力
在这里插入图片描述

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-----------电路设计
在这里插入图片描述
在这里插入图片描述

注意 这是电路设计 不能用上一种方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上面是CS与代码段的问题

下面开始DS与数据段的问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述