8085汇编程序的时钟周期和内存使用

Clock cycle and memory usage of an 8085 assembler program

我有一个用汇编语言编写的小程序,可以计算一个数的平方。


Org 2010h
Db 0ah        

Org 2013h
Db 00h        

Org 1000h     
mvi a, 00h    
lxi hl, 2010h 

mov b, m
mov c, m      

CYCLE:
add b         
dcr c         
jnz CYCLE     

lxi hl, 2013h 
mov m, a       

hlt

我有几个关于这个程序的问题。

第一个任务是如果每个存储单元正好存储一个字节的信息,则确定将程序部分存储在内存中所需的程序存储单元的数量。 第二个任务是确定 运行 程序需要多少个时钟周期。

这里的逻辑是什么? 我将如何计算这些东西? 我根本不明白这一点,任何帮助将不胜感激。 干杯。

https://pastraiser.com/cpu/i8085/i8085_opcodes.html 有每个 8085 指令的指令大小和周期时间。

8085 是非流水线的使得性能分析变得非常简单:每条指令都有一个固定的成本,您可以将其加起来,这与现代 CPU 不同,现代 CPU 的循环不仅仅是其部分的总和。

例如,我在 上的回答包括代码大小/性能分析。

or example: lxi hl, 2010h ---- 3 bytes and 10 clock cycles. mov b, m --- 1 byte and 7 clock cycles. And the sum of the two would be just 4 bytes and 7 clock cycles ? Is it that straightforward or am I missing something?

我假设你的意思是 17 个时钟周期,但是,是的,在一个基本块(无分支)中就这么简单。

8085 是如此原始,它甚至在获取下一条指令之前就完全完成了一条指令的执行。

当然,正如 Erik 指出的那样,您必须通过循环跟踪执行以获得 动态 指令 count/mix:jnz 被采用 9次而不是一次。

代码大小取决于静态指令组合(每条指令只计算一次),但周期时间计算每条指令执行的次数。