正在加载图片...
200编的奥 Chinapul.com 上面这些指令可节约几个字节。例如,第一条指令正常需要6个字节 MOV L, A ADC DAD指令通常用于计算存储器地址,这条指令只影响CF。 下一步让我们看以下各种指令。下面的两个操作码后都紧跟着一个2字节地址,分别保存 和装载寄存器对HL的内容: 操作码 SHLD aaaa 直接保存HL 2Ah LHLD HL, [aaaa 直接装载HL 寄存器L的内容保存在地址aa处,寄存器H的内容保存在地址aa+1处 下面两条指令用来从寄存器对H中装载程序计数器PC或堆栈指针SP: 操作码 指令 含义 PCHL PC. HL 把HL中的内容装载到PC Fsh SPHL SP, HL 把HL中的内容装载到SP PCHL指令实际上是一种转移指令,8080执行的下一条指令保存在HL寄存器对中的地址 所对应的存储单元中。SPHL是另外一个设置SP的方法。 下面两条指令中,第一条指令使HL的内容与堆栈中最上面的两个字节进行交换,第二条 指令使HL的内容与寄存器对DE的内容进行交换: 操作码 含义 E3h XTHL HL, [SP HL与堆栈顶端的内容交换 EBh XCHG HL, DE DE和HL交换 除了PCHL外,还没有讲过8080的转移指令。前面第17章中讲过,处理器中有一个叫作程 序计数器PC的寄存器,PC中包含处理器取回并执行的指令的存储器地址。通常PC使处理器顺 序执行存储器中的指令,但有些指令一通常命名为Jump(转移)、 Branch(分支)或goto (跳转)——一能使处理器偏离这个固定的过程。这些指令使得PC装载另外的值,处理器所取的 下一条指令将在存储器的其他位置。 尽管简单、普通的转移指令很有用,但条件转移指令更有用。这些指令可使处理器根据 某些标志,如CF或ZF,来转移到另外的地址处。条件转移指令的存在使得第17章中的自动加 法机成为一般意义上的数字计算机 8080有5个标志位,其中4个对条件转移指令有用处。8080支持9种不同的转移指令,包括 无条件转移指令和基于ZF、CF、PF、SF是1还是0的条件转移指令 在介绍这些指令之前,先介绍一下与此相关的另外两种指令。第一个是Call(调用)指令 Ca指令与Jump指令的不同之处在于:前者把一个新值装入到程序计数器PC中,处理器保存 PC中原来的地址,保存在哪里?当然,在堆栈中。 这种策略意味着Ca指令可有效地保存“程序从哪里跳转”的标记。处理器最终可利用此200 编码的奥秘 下载 上面这些指令可节约几个字节。例如,第一条指令正常需要 6个字节: MOV A,L ADD A,C MOV L,A MOV A,H ADC A,B MOV H,A D A D指令通常用于计算存储器地址,这条指令只影响 C F。 下一步让我们看以下各种指令。下面的两个操作码后都紧跟着一个 2字节地址,分别保存 和装载寄存器对H L的内容: 操作码 指令 含义 2 h SHLD [aaaa],H L 直接保存H L 2 A h LHLD HL,[ a a a a ] 直接装载H L 寄存器L的内容保存在地址a a a a处,寄存器H的内容保存在地址a a a a + 1处。 下面两条指令用来从寄存器对 H L中装载程序计数器P C或堆栈指针S P: 操作码 指令 含义 E 9 h PCHL PC,H L 把 H L中的内容装载到P C F 9 h SPHL SP,H L 把H L中的内容装载到 S P P C H L指令实际上是一种转移指令, 8 0 8 0执行的下一条指令保存在 H L寄存器对中的地址 所对应的存储单元中。S P H L是另外一个设置S P的方法。 下面两条指令中,第一条指令使 H L的内容与堆栈中最上面的两个字节进行交换,第二条 指令使H L的内容与寄存器对D E的内容进行交换: 操作码 指令 含义 E 3 h XTHL HL,[ S P ] H L与堆栈顶端的内容交换 E B h XCHG HL,D E DE 和H L交换 除了P C H L外,还没有讲过8 0 8 0的转移指令。前面第1 7章中讲过,处理器中有一个叫作程 序计数器P C的寄存器,P C中包含处理器取回并执行的指令的存储器地址。通常 P C使处理器顺 序执行存储器中的指令,但有些指令—通常命名为 J u m p(转移)、B r a n c h(分支)或 g o t o (跳转)—能使处理器偏离这个固定的过程。这些指令使得 P C装载另外的值,处理器所取的 下一条指令将在存储器的其他位置。 尽管简单、普通的转移指令很有用,但条件转移指令更有用。这些指令可使处理器根据 某些标志,如C F或Z F,来转移到另外的地址处。条件转移指令的存在使得第 1 7章中的自动加 法机成为一般意义上的数字计算机。 8 0 8 0有5个标志位,其中4个对条件转移指令有用处。 8 0 8 0支持9种不同的转移指令,包括 无条件转移指令和基于Z F、C F、P F、S F是1还是0的条件转移指令。 在介绍这些指令之前,先介绍一下与此相关的另外两种指令。第一个是 C a l l(调用)指令。 C a l l指令与J u m p指令的不同之处在于:前者把一个新值装入到程序计数器 P C中,处理器保存 P C中原来的地址,保存在哪里?当然,在堆栈中。 这种策略意味着C a l l指令可有效地保存“程序从哪里跳转”的标记。处理器最终可利用此
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有