8086汇编总结整理

本文详细介绍了8086汇编语言的基础知识,包括架构特性、寄存器类型(通用寄存器、段寄存器、指令指针和标志寄存器)、内存组织方式、指令系统(如输入输出、数字操作和串操作)以及子程序与堆栈传参。通过实例展示了如何进行字符串操作和堆栈管理,并提供了子程序调用的注意事项。
摘要由CSDN通过智能技术生成

架构简介

8086是16位寄存器和16位外部数据总线,20位地址总线,寻址为1MB的地址空间。

架构为基于累加器的寄存器-内存架构,可以对内存数直接操作,不同于MIPS的寄存器-寄存器架构运算数和结果都在寄存器中。这意味着,和MIPS相比,一方面寄存器-内存的架构使得8086中有许多可以直接操作内存的指令,避免了进行取-计算-存这样的步骤;另一方面,基于累加器的特点使得8086指令集中INC和DEC的方便高效尤为突出,运算指令集也很自然地呈现了不一样的结构。

寄存器简介

通用寄存器
8个通用寄存器
     
AX

乘除法的第一个操作数;乘除法返回的部分(16位,8位全部)结果;

串操作中load和store操作的寄存器(AX,AL);

系统调用功能号(AH);

可作为通用寄存器或寄存器传参进行函数调用时返回值存放处

 
BX

间接寻址的基址寄存器;

通用寄存器

 
CX   

LOOP计数器;

移位寄存器(移位次数)

 
DX

16位乘法中乘积高16位,32位/16位被除数高位及余数;

部分系统调用内容 DL

 
SP 堆栈指针  
BP

相对堆栈段的相对寻址的基址寄存器,相对SS段寻址;

堆栈传参的基址寄存器

 
SI

串操作的源变址寄存器;

基址加变址相对寻址的变址寄存器

相对于DS寻址

 
DI

串操基址加变址相对寻址的变址寄存器作的目的变址寄存器;

基址加变址相对寻址的变址寄存器

相对于DS或ES(串操作)寻址

 
段寄存器

段寄存器包括CS(代码段)、DS(数据段)、SS(堆栈段)、ES(附加段)

指令指针

IP,当前代码在CS中的偏移。类似MIPS的PC。

标志寄存器

8086有9个一位标志寄存器(标志位),放在16位的寄存器PSW(program status word)中。

其中特别注意,ZF表示结果是否为0,结果为0则ZF=1; SF表示结果是否为负,结果小于0则SF=1。


内存组织

段式内存管理,相比之前OS中做的分页式内存管理更加灵活。

内存中(非堆栈段)存储内存由低到高增长,存储遵循低字在前、高字在后,低字节在前、高字节在后。

堆栈也遵循低字节在前、高字节在后,

堆栈操作
PUSH 

(1) SP -= 2

(2)  ->[SP] 

POP

(1) [SP] ->

(2) SP += 2 


地址表示与寻址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值