ISA小抄00 - Intel 8080/85

“ISA小抄”系列是新开的坑,内容为各种CPU的简要介绍,可能包括芯片的参数,架构,寄存器安排,指令集介绍这些内容
之所以写这个,顾名思义,就是想让自己在有机会使用这些老古董时,可以快速地学会关于这个CPU的云云,并开始使用她

这次我选择了第一台真正意义上的“个人电脑”——Altair 8800所用的CPU——Intel 8080,作为本系列的开篇(其实之前的PDP-8简介也能算是一个)
因为想要阅读4k basic的反汇编源码,而8080的指令集又与8086很不同,就写了这篇东西来给自己看

(题图来自wikimedia commons,拍摄者是Ed Uthman)
(下次再看到我这么搞排版,请弄死我)

基本信息:

寄存器安排:

标记位:
Flags:|S|Z|I|AC|-|P|-|CY|

指令集:

指令集部分内容涉及一些简写:

寄存器,寄存器对,地址,常数用半角括号框起来以增加可读性
“长度”以字节为单位
“周期”为执行该指令所需的机器周期
“状态数”为执行该指令时CPU内部需要进行的操作次数,斜杠标明同一个指令在不同情况下需要的不同的状态数
“影响”指所影响的标记位

8080的指令有三种大小:单字节指令,双字节指令和三字节指令
每一种指令的第一个字节都是编码操作符的,其余字节用于编码数据或地址

8080可以用以下方式从内存中获取数据:
直接寻址
寄存器直接寻址
寄存器间接寻址
直接数

8089支持以下跳转方式:
直接跳转 使用编码在一条指令中的地址作为目的地
寄存器间接跳转 使用一个寄存器对内的16位地址作为目的地

8080指令索引:

一类:数据传送指令

MOV
MVI
LXI
LDA
STA
LHLD
SHLD
LDAX
STAX
XCHG

二类:数学运算指令

ADD
ADI
ADC
ACI

SUB
SUI
SBB
SBI

INR
DCR
INX
DCX
DAD

DAA

三类:逻辑运算指令

ANA
ANI
XRA
XRI
ORA
ORI

CMP
CPI

RLC
RRC
RAL
RAR

CMA
CMC
STC

四类:分支指令

JMP
Jcondition, If
CALL
Ccondition, If
RET
Rcondition, If
RST
PCHL

五类:栈/IO/机器控制指令

PUSH
PUSH PSW
POP
POP PSW
XTHL
SPHL

IN
OUT

EL
DI

HLT
NOP

RIM(仅限8085)
SIM(仅限8085)


一类:数据传送指令

二类:数学运算指令

三类:逻辑运算指令

四类:分支指令

支持的条件:

五类:栈/IO/机器控制指令

2 thoughts on “ISA小抄00 - Intel 8080/85”

Leave a Reply

Your email address will not be published. Required fields are marked *