来古计算机 > 汇编语言 > 正文

什么是16位汇编指令?

在学习16位汇编指令之前我们先来了解下汇编语言的特征:

汇编语言特点:与机器相关,执行效率高,调试复杂。

汇编语言优缺点:汇编语言和高级语言混合编写,形成互补。

汇编语言数据表示类型:二进制(B),八进制(Q),十进制(D),十六进制(H)。

BCD编码:指用二进制来表示十进制数。

CPU资源和存储器:指通用寄存器,标志寄存器,指令寄存器。

EAX,累加

ECX,循环计数

EDX,数据寄存器

EBX,基址寄存器

ESP,栈顶

EBP,栈底

ESI,扩展源指针

EDI,扩展目的指针

EIP,指令指针

SI(16位),变址寄存器,常用于存储器寻址时提供地址,源操作数指针

DI(16位),变址寄存器,常用于存储器寻址时提供地址,目的操作数指针

Flag寄存器

QQ图片20180207105616.png

进位CF,CF=1,运算结果表示有进位或者借位

零标志ZF,ZF=1,表示结果为0

符号标志SF,SF=1,运算结果最高位为1

奇偶标志PF,PF=1,运算结果最低8位1的个数为0或者偶数(奇)

溢出标志OF,OF=1,算数运算结果有溢出

辅助进位AF,AF=1,运算时有进位或借位

方向标志DF,DF=1,地址自动减少,用于串操作,控制地址变化方向

中断标志IF,IF=1,允许中断,用于控制外部可屏蔽中断是否可处理

陷阱标志TF,TF=1,处理器处于单步执行指令(处理器每执行一条指令便产生一个内部中断,可以对程序进行单步调试)

16位汇编物理地址与逻辑地址转换:逻辑地址<< 4位 + 偏移 = 物理地址(可以有多个逻辑地址)

CS(代码段),表示代码段的起始地址

SS(堆栈段),表示堆栈段的起始地址

DS(数据段),表示数据段的起始地址

ES(附加段),表示附加段的起始地址,附加段是数据段,用于数据保存,串操作指令将附加段作为其目的操作数的存放区域

段前缀CS:  ;使用代码段

段前缀SS:  ;使用栈段

段前缀DS:  ;使用数据段

段前缀ES:  ;使用附加段

默认访问DS,使用BP则访问主存(SS)

1M最多可分64K个段,最少能分16个段

8086有8个8位通用寄存器(al,ah…),8个16位通用寄存器(ax,bx…),6个状态标志(CF,ZF,SF,PF,OF,AF)和3个控制标志(DF,IF,TF),4个段寄存器,4种逻辑段,4个段前缀指令

 

立即数寻址,mov ah,0x01

寄存器寻址,mov ah,[bh]

直接寻址,mov AX,ES:[2000H]

寄存器间接寻址,mov AX,[SI]

寄存器相对寻址,mov AX,[DI+05]

基址变址寻址,mov AX,[BX(BP)+SI]

相对基址变址寻址,mov AX,[BX+SI+05]

 

段内转移也称近转移(near ptr)

段内转移也称短转移(short)

段间转移也称远转移(far ptr)

推荐文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

标签列表
网站分类
最新留言

Powered By Z-BlogPHP and Terry

Copyright @ laigucomputer.com 来古计算机 工信部备案号:粤ICP备18009132号