汇编学习第零课 实验环境搭建以及寄存器学习

来源:互联网 发布:解沉迷软件 编辑:程序博客网 时间:2024/05/23 11:04

1.汇编学习环境搭建

masm for windows 是汇编程序教学的老师一起编写的.因此特别适合汇编学习的入门
可自行上网搜索下masm的用法

2.寄存器

8086 CPU 中寄存器总共为 14 个,且均为 16 位 。
即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。

2.1通用寄存器
比较常用的只有ax,bx,cx寄存器,dx并不常用.
ax寄存器

bx寄存器一般用来作为偏移地址来使用.
偏移地址和段地址,段地址是段寄存器ds
在 8086 CPU 中,CPU 是根据 <段地址:偏移地址> 来进行寻址操作的
而 BX 中存放的数据表示的是偏移地址的话,自然,便可以通过 <段地址:[BX]> 的方式来完成寻址操作了

cx寄存器
cx寄存器有专门的用途,计数器.而cpu在每一次执行loop指令时,可以通过cx来指定循环的次数.

2.2 段寄存器
物理地址是由段地址左移4位,然后加上偏移地址形成的.
8086 cpu不支持将一个数据直接送入段寄存器中

DS:[BP]
在这里明确给出了段地址位于 DS 中,即段地址为 DS ,偏移量为 BP 寄存器中的值的内存单元.
而如果单单是使用 [BP] 的话,则代表的内存单元是段地址为 SS,偏移量为 BP 寄存器中的值的内存单元。
BP寄存器和SP寄存器的使用

变址寄存器
SI 源变址寄存器 DI目的变址寄存器

CS:IP
cs:ip告诉cpu要执行哪一块的指令代码

SS:SP
对于栈操作,最需要知道的是栈顶的段地址和偏移地址.栈顶的段地址存放在寄存器SS中,栈顶的偏移地址存放在SP寄存器中.
push 压入一个字节单元,sp = sp -1,栈顶元素发生变化.
pop从栈中弹出一个字节单元时,sp = sp +1 栈顶元素发生变化.

0 0