我有一个小程序在汇编中写成一个数字的平方。
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
关于这个项目我有几个问题。
第一项任务是,如果每个存储单元准确地存储一个字节的信息,则确定将程序部件存储在内存中所需的程序存储单元的数量。第二个任务是确定运行程序所需的时钟周期。
这里的逻辑是什么?我该如何计算这些东西呢?我一点也不明白,任何帮助都将不胜感激。干杯。
发布于 2019-12-11 23:51:00
https://pastraiser.com/cpu/i8085/i8085_opcodes.html的指令大小和循环时间为每8085条指令。
8085是非流水线的,使perf分析变得非常琐碎:每条指令都有一个固定的成本,你可以把它加起来,不像现在的CPU,循环不仅仅是它的各个部分的总和。
例如,我对Finding the absolute value of a number in 8085 microprocessor assembly language的回答包括代码大小/性能分析。
或示例: lxi hl,2010 h-3个字节和10个时钟周期。mov b,m--1字节和7个时钟周期。两者的总和只有4个字节和7个时钟周期?是这么直截了当还是我遗漏了什么?
我想你指的是17个时钟周期,但是是的,在一个基本的块(没有分支)中很容易。
8085是如此原始,以至于在取下一条指令之前完全完成了一条指令的执行。
当然,正如Erik所指出的,您必须通过循环跟踪执行,以获得动态指令计数/混合:jnz
被执行了9次,而不是一次。
代码大小取决于静态指令组合(只计算每条指令一次),但循环时间会计算每条指令的执行次数。
https://stackoverflow.com/questions/59295244
复制相似问题