汇编语言学习摘要 基础知识和寄存器

注:根据王爽《汇编语言》(第三版)内容,主要防忘记和方便查找

一、基础知识 略


二、寄存器

****8086CPU所有寄存器都是16字节

****AX,BX,CX,DX为通用寄存器,且都可以分为两个独立的8位寄存器独立使用
****AX->AH和AL,BX,CX,DX同理

汇编语言学习摘要 基础知识和寄存器
****字节byte,8位;字word,16位,即2字节

汇编语言学习摘要 基础知识和寄存器
汇编语言学习摘要 基础知识和寄存器
注意数字的后缀,没有后缀默认为十进制,后缀为h是16进制,b则为二进制,后缀不区分大小写

8086CPU寻址 :物理地址=段地址16再偏移地址

16进制表示如下
汇编语言学习摘要 基础知识和寄存器
只有4个段寄存器可用来提供段地址:CS DS SS ES

CS和IP指示了当前要读取指令的地址
即8086机中,任意时刻,CPU将CS:IP指向的内容当做指令执行

修改CS IP不可用mov之类的指令,可用jmp指令


三、内存访问

内存中,一个地址是一个存储单元,一字节

采用小端法存储,即字型数据(word两字节)高位字节存储于高地址单元,地位字节存储于低地址单元。如图从0地址开始存放20000(4E20H)和18(0012H)
汇编语言学习摘要 基础知识和寄存器
注:地址从0开始增长,因此1相对于0为高地址,后面同理。


DS段寄存器,用来存放要访问数据的段地址

比如下图用来读取10000H单元内容
汇编语言学习摘要 基础知识和寄存器
注:不能直接将数据送入寄存器,只能通过 mov 段寄存器,寄存器
注:[…]表示一个内存单元


mov合法操作如下:
汇编语言学习摘要 基础知识和寄存器


任意时刻,SS:SP指向栈顶元素,可以使用pop和push指令实现出栈和入栈操作

push ax
相当于
sp=sp-2
将ax中内容送入ss:sp所指内存处

pop ax
相当于
将ss:sp所指内存处数据送入ax中
sp=sp+2

汇编语言学习摘要 基础知识和寄存器
汇编语言学习摘要 基础知识和寄存器