8085微处理器指令类型SBB R
在8085指令集中,SBB R是用于多字节减法的助记符。让我们考虑以下关于这种减法的例子

在上面的例子中,62H和F1H的减法结果为71H,借位为1。接下来,我们必须从44H中减去13H以及这个借位值1。在上面的追踪中,我们向您展示了内部计算是如何进行的。现在在8085中,为了方便这种操作,提供了SBB指令来减去两个数字以及借位值。
SBB是一个助记符,代表“带借位的减法”(SuBtract with Borrow),“R”代表以下7个寄存器中的任何一个,以及HL寄存器对指向的内存位置M。
R = A, B, C, D, E, H, L, or M
此指令用于计算从累加器内容中减去R寄存器的内容以及进位(借位)值。减法的结果将存储在累加器中,替换累加器的初始值。由于R可以有八个值中的任何一个,因此这种类型的指令有八个操作码。它在内存中只占用1个字节。
| 助记符,操作数 | 操作码(十六进制) | 字节数 |
|---|---|---|
| SBB A | 9F | 1 |
| SBB B | 98 | 1 |
| SBB C | 99 | 1 |
| SBB D | 9A | 1 |
| SBB E | 9B | 1 |
| SBB H | 9C | 1 |
| SBB L | 9D | 1 |
| SBB M | 9E | 1 |
让我们考虑SBB E作为这种类型的指令示例。因为它是一个1字节指令,所以它将占用单个内存位置。假设累加器的初始内容是44H,E寄存器的初始内容是13H,Cy设置为1。下面在追踪表中显示了执行此指令SBB E的结果
| 之前 | 之后 | |
|---|---|---|
(E) |
13H | 13H |
(A) |
44H | 30H |
(标志) |
Cy=1,其他标志位=任意值 | Cy=0,AC=1,S=0,P=1,Z=0 |
| 地址 | 十六进制代码 | 助记符 | 注释 |
|---|---|---|---|
| 2005 | 9B | SBB E | A寄存器 = A寄存器 – E寄存器 – 1 |
指令SBB E的时序图如下

总结 − 因此,此指令SBB E需要1字节、1个机器周期(操作码获取)和4个T状态才能执行,如时序图所示。
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP