《计算机是怎样跑起来的》 || 第三章 • 体验一次手工汇编(中)

怎甘沉沦 提交于 2019-12-28 21:11:07

在这里插入图片描述
作者:矢泽久雄

——————————————————————————————————————

第三章 • 体验一次手工汇编(中)

——————————————————————————————————————

【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标签所标识的指令上

——

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!