汇编语言学习笔记2(王爽)
来源:互联网 发布:服务器端口转发工具 编辑:程序博客网 时间:2024/05/21 18:45
概述
一个典型的CPU由运算器、控制器、寄存器等器件构成。
运算器进行信息处理;
寄存器进行信息存储;
控制器控制各种器件进行工作;
通用寄存器
8086CPU的所有寄存器都是16位的,AX、BX、EX、DX四个寄存器通常用来存放一般性的数据, 被称为通用寄存器。
8086CPU的AX、BX、EX、DX四个寄存器都可分为两个可独立使用的8位寄存器来用:AX可分为AH(高位)和AL(低位),BX可分为BH和BL...
相关汇编指令
mov,add
mov ax,bx 类似于ax=bx。add al, 18H类似于al+=18H。
在进行数据传送或运算时, 要注意指令的两个操作对象的位数应当是一致的,类似mov ax,bl、add al,100H都是错误的。
eg:mov ax 00C5H,add al,93H。ax? ax最终为0058H,一定要注意此时al,ah是相互独立的。
段寄存器
8086CPU有20条地址总线,但是其CPU本身是16位结构,在内部只能一次性传出16位地址达不到2的20次方。所以在内部采用两个16位地址合成一个20位的物理地址。
物理地址=段地址*16(相当将段地址左移一位)+偏移地址
8086CPU有四个段寄存器:CS、DS、SS、ES
在任意时刻CPU将CS:IP指向的内容当做指令执行,IP寄存器中包涵着偏移地址
8086CPU的工作过程:
1:从CS: IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
2: IP指向下一条指令;
3:执行指令。(转到步骤1,重复这个过程。)
4:8086CPU提供转移指令修改cs 、IP的内容。(详细图解P27)
1:从CS: IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
2: IP指向下一条指令;
3:执行指令。(转到步骤1,重复这个过程。)
4:8086CPU提供转移指令修改cs 、IP的内容。(详细图解P27)
想要修改CS、IP值用jmp转移指令。 jmp 段地址:偏移地址(jmp 2AE3:3后CS:2AE3H、IP:0003H)jmp 某合法寄存器:含义为修改IP
实验指令
R:--r、-rcs、-rip等等。用于查看和修改CPU寄存器内容。
D:-d(显示或列出后续)、-d 1000:0、-d 1000:0 f(从1000:0000-1000:000f内容)。查看内存
E:-e 1000:0(依次写入、空格和Enter)-e 1000:0 1 2 3 4 5(直接从1000:0写)。写内存
U:-u 1000:0。 翻译成汇编指令
A:-a 1000:0。以汇编指令方式写内存
T:从CS:IP处执行指令
阅读全文
0 0
- 汇编语言学习笔记2(王爽)
- 汇编语言学习笔记(2)
- 汇编语言学习笔记(2)
- 汇编语言学习笔记2
- 王爽-《汇编语言2》学习笔记2
- 王爽-《汇编语言2》学习笔记1
- 王爽 《汇编语言》学习笔记 (一)
- 汇编语言学习笔记1(王爽)
- 汇编语言学习笔记3(王爽)
- 王爽《汇编语言》学习笔记--第一章
- win32汇编语言学习笔记2
- 汇编语言学习笔记(1)
- 汇编语言学习笔记(1)
- 汇编语言学习笔记(3)
- 汇编语言学习笔记(4)
- 汇编语言学习笔记(4)
- 汇编语言学习笔记(一)
- 汇编语言学习笔记(二)
- linux查看系统编码和修改系统编码
- java base64编码和解码
- c++ vector(向量)使用方法详解
- C#对XML文件的各种操作实现方法
- 自定义函数实现mb_strlen与中文 strrev转置功能
- 汇编语言学习笔记2(王爽)
- 又双叕写了一个 Host 管理插件
- 使用数据库的方式来自定义存储用户session信息
- 工厂模式
- AndroidManifest.xml清单文件详解--manifest节点
- 计算并输出下列的值
- VTK序列图像的读取
- Io
- 看到科技又获CES 2018创新大奖?快来高交会展位一探究竟