0

アセンブリで intel 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

Rx2 つのレジスタを比較するには、次のようにします。

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 に答える