作者:矢泽久雄
——————————————————————————————————————
第三章 • 体验一次手工汇编(中)
——————————————————————————————————————
【03】Z80 CPU的寄存器结构
CPU寄存器简介
- 数据运算是在CPU中进行的,所以CPU内部有存储数据的地方,叫做“寄存器”
- 与I/O寄存器不同,CPU寄存器不仅能存储数据,还具备运算能力
- CPU带有怎样的寄存器取决于CPU种类
- 不同寄存器的类型用途自然不同
图示
- IX、IY、SP、PC的大小是16bit,其他的是8bit A寄存器:累加器,运算的核心
- F寄存器:标志寄存器,用于存储运算结果的状态,比如是否发生进位、数字大小比较结果
- PC寄存器:程序指针,存储着指向CPU接下来要执行指令的地址
PC寄存器的值会随着时钟信号自动更新,可以说程序就是依靠不断变化的PC寄存器从而运行起来的
- SP寄存器:栈顶指针,在内存中创建出名为“栈”的临时数据存储区域
【04】汇编操作
设定Z80 PIO
应该用怎样的数字设定端口,在本身的资料上有
207表示设定端口为输入输出模式
255表示设定端口为输入模式
0表示设定端口为输出模式
01 设定端口A为输入模式
操作数是必须已存储在CPU寄存器中的数字先把207,255加载到A寄存器再把数据写入I/O地址所对应的寄存器,其中(2)就是地址编号
- LD A,207
- OUT(2),A
- LD A,255
- OUT(2),A
02 设定端口B为输出模式
- LD A,207
- OUT(3),A
- LD A,0
- OUT(3),A
Z80 PIO进行输入输出
- LOOP: IN A, (0) # 把数据由端口A数据寄存器输入到CPU的寄存器A
- OUT (1), A # 把寄存器A的数据输出到端口B寄存器
- JP LOOP # 使程序流程跳转到LOOP标签所标识的指令上
——
来源:CSDN
作者:逆旅鸭
链接:https://blog.csdn.net/nilvya/article/details/103747463