标签: 8085

8085汇编指令MOV,LDA和STA

我得到的点MOV,STALDA指示,但我不明白的是为什么有两种不同的工艺三种不同的指令?

  • STA 用于将数据从累加器复制到存储器位置,
  • LDA 用于将数据从内存位置复制到累加器和
  • MOV 用于在寄存器加寄存器和存储器之间复制数据.

所以,我可以做什么STA,LDA指令也可以用MOV指令完成,对吧?

assembly copy mov 8085

4
推荐指数
1
解决办法
5492
查看次数

标志寄存器中保留/未定义位的用途是什么?

在Z80,8080,8085和8086处理器的标志寄存器中,第1,3,5位的目的是什么,它们被记录为"保留"或"未定义"?

z80 cpu-architecture 8085 intel-8080 x86-16

4
推荐指数
1
解决办法
745
查看次数

英特尔8085组件中的bitshift操作有什么作用?

我试图向自己解释以下8085汇编代码

我有这个代码要求两个数字(来自IDE中的虚拟键盘)并在LED 7和8上显示它们:

.ORG 0000

CALL DATA
MOV C,A
CALL PRNT

CALL DATA
MOV E,A
CALL PRNT

MVI D,00H
MOV L,E
MVI H,00H

MOV A,C
DCR A
JUMP:
DAD D
DCR A
JNZ JUMP

MOV A,L
DAA
JMP IMPR

RET

DATA:
MVI A,00000000B
OUT 00H
IN 00H
RLC
RLC
RLC
RLC
ANI F0H
MOV B,A
MVI A,00000000B
OUT 00H
IN 00H
ANI 0FH
ORA B
RET

IMPR:
MOV B,A

ANI F0H
RLC
RLC
RLC
RLC
CALL NUMZ
OUT 06H
MOV …
Run Code Online (Sandbox Code Playgroud)

assembly bitwise-operators bcd 8085

4
推荐指数
1
解决办法
1321
查看次数

没有溢出标志的处理器如何执行带符号算术?

我知道可以通过进位标志增加两个大于给定处理器总线大小的无符号整数.通常,对于使用溢出标志的有符号整数也是如此.但是,Intel 8085只拥有一个Sign标志,而不是一个Overflow标志,那么它如何处理有符号整数运算呢?

math assembly signed 8085 integer-arithmetic

4
推荐指数
1
解决办法
523
查看次数

MOV DD是什么意思?

在汇编语言,指令

MOV A B
Run Code Online (Sandbox Code Playgroud)

表示将B(来源)的内容移动到A(目的地).
我突然想出了指示

MOV D D
Run Code Online (Sandbox Code Playgroud)

这意味着什么?

我在实验手册中看到了这一点.截图:

在此输入图像描述

assembly microprocessors 8085

4
推荐指数
2
解决办法
6531
查看次数

为什么在CALL的操作码获取中有6T状态而不是4?

我的问题是为什么在CALL指令的操作码获取中有6T状态,而在8085微处理器中有4个用于其他指令.我搜索了很多,但没有找到任何满意的答案.

这里:http://www.edaboard.com/thread201650.html它说它与CALL情况下使用的双寻址模式有关.但并没有真正解释为什么6T表示.

任何的想法?

编辑

当我开始知道CALL需要18个T状态时,就出现了这个问题.

根据我的计算,它应该是:4(对于操作码获取)+ 3 + 3(两个存储器读取以读取子程序地址)+ 3 + 3(对于堆栈上的两个存储器写入)= 16

因此,在搜索互联网时,我知道在CALL情况下操作码获取部分需要6T状态而不是4.

UPDATE

在阅读了评论并重新思考之后,我开始知道PUSH通常会将12个T状态作为指令.在CALL的情况下我们可以忽略PUSH的操作码获取部分,因为没有显式的PUSH指令,所以现在我们有8(12 - 4).所以,我觉得是因为堆栈指针的减少?因为即使在推送中它应该是6(3 + 3用于存储器写入),但在这里它是8(4 + 4).

call 8085

3
推荐指数
1
解决办法
6338
查看次数

将超频8085微处理器会减少时钟周期数

我正在研究8085微处理器,发现它工作在3 Mhz上,例如需要4个时钟周期来进行操作码读取,3个时钟周期用于IO/M读取或写入.

那么现在,如果我以某种方式超频8085以10 Mhz工作,那么时钟周期的数量会减少吗?
或者循环次数保持不变但是3或4个完整循环的有效时间会减少?

clock cpu-architecture microprocessors 8085

1
推荐指数
1
解决办法
138
查看次数

计算机科学中十六进制数的重要性

在研究编程8085,8086和微进程器时,我们总是有十六进制表示.二进制数在计算机中很重要.但这些十六进制数字如何重要?有历史意义吗?

如果有人指出一些历史文章也会很好.

编辑:

计算机如何处理十六进制数?例如,当给出十六进制数作为输入时,8085会发生什么?

assembly hex masm 8085 x86-16

1
推荐指数
2
解决办法
1万
查看次数

8085 的跳转语句中有多少个机器周期?

如果要检查的条件满足和不满足的情况,8085 中的任何跳转语句都需要哪些机器周期?

编辑:我知道号码。我想知道那些机器周期是什么。第一个是 Opcode Fetch,但其余的呢?

assembly 8085

1
推荐指数
1
解决办法
1万
查看次数

如何绕过操作系统运行汇编代码?

首先,我不了解现代CPU和操作系统。为此,我将针对intel 8085处理器进行解释。当然,我希望你想象有一个操作系统可以在intel 8085上运行。

我们有这样的汇编代码:

MVI A,16
MVI B,16

ADD B

HLT
Run Code Online (Sandbox Code Playgroud)

这段代码非常简单。当此代码运行时,它会执行以下操作: 将数字 16 加载到 intel 8085 处理器的寄存器 a 和 b 中。然后将这两个寄存器的值相加。

当然,当我们尝试在操作系统中运行这段代码时,很可能什么也不会发生。

我想问的是:如何在操作系统上运行不包含任何系统调用(或任何特定于操作系统)的代码(绕过操作系统)?我不希望操作系统在执行此操作时崩溃。

cpu assembly operating-system 8085

1
推荐指数
1
解决办法
537
查看次数

LDA:在8位寄存器中插入16位?这是什么意思?

我已经读过,在8085,累加器是一个8位寄存器.那么下面的指令怎么样才是真的:

LDA address
Run Code Online (Sandbox Code Playgroud)

其中address是LH顺序的"16位"地址

如何在8位寄存器中插入16位地址?

assembly microprocessors 8085

0
推荐指数
1
解决办法
956
查看次数

用于查找数字阶乘的 8085 汇编语言程序

我想找到一个我首先占用内存的数字的阶乘。(intel 8085)

编辑:我是初学者。我不知道如何编写它的汇编代码。

伪代码:

input n
fact = 1
loop:
..multiply fact by n
..decrement n
..test n
..jump if not zero to loop
output fact
Run Code Online (Sandbox Code Playgroud)

assembly factorial 8085

0
推荐指数
1
解决办法
4万
查看次数