汇编语言学习笔记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)

想要修改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处执行指令
原创粉丝点击