0

我在汇编中为英特尔 8051 编写了一个程序。该程序编译良好,在模拟器中执行良好,但在端口上没有显示任何输出。输出端口只是空的。

这是代码:

ORG 00H

MOV P1, #00H
MOV P2, #00H
MOV P3, #00H
mov R4, #00h

TakeInput:

MOV R3,#0H


JB P3.4, TakeOperation   
DJNZ R3,TakeInput

MOV R0, P1

MOV R1, P2

MOV P2, #00H 

采取行动:

mov p2,#00h

jb p3.5,CheckFunction

sjmp TakeOperation

CheckFunction:

mov P3,#00h
Mov R5,P2
CJNE R5,#02H,ADDT

ajmp end

ADDT:

MOV A,R0

ADD A, R1

MOV P3, A    
SJMP CheckFunction

我做错了什么输出没有显示在端口上?问候

4

1 回答 1

0

比较两个Rx寄存器:

MOV A,R0
CJNE A,01h,r0_r1_not_equal  ; Assumes that you're using register bank 0
; take action based on R0==R1
; ...
SJMP done
r0_r1_not_equal:
; take action based on R0!=R1  
; ...
done:
于 2013-02-28T13:12:50.733 回答