0
にelse文は、任意の数である場合、それは表示されます7segmentのZは正しくありません だから、どこに問題がないのですか?誰でも問題を解決するのに役立つことができます。この数が偶数、奇数またはゼロ</p> <p>私が得た問題と同じである場合、私は、ユーザーが示されます符号なしの数や表示を入力するプログラムを記述する必要が68K
LEDS EQU $E00010 ;LEDS adress
SW EQU $E00012 ;switch address
BU EQU $E00014 ;button address
one EQU $E00000 ;7 segment display address 1
two EQU $E00002
three EQU $E00004
four EQU $E00006
five EQU $E00008
six EQU $E0000A
seven EQU $E0000C
eight EQU $E0000E
ORG $400 ;start of program area
START
Loop
MOVE.B D0,LEDS
MOVE.B SW,D1
MOVE.B BU,D2
MOVE.B #0,D3
MOVE.B #0,D0 ; LEDS is off
MOVE.B #0,one ;7 segment is off
MOVE.B #0,two
MOVE.B #0,three
MOVE.B #0,four
MOVE.B #0,five
MOVE.B #0,six
MOVE.B #0,seven
MOVE.B #0,eight
MOVE.B #%1101101,one ;display S on 7 segment
NOT.B D2 ; flip value of button
CMP.B #%00000001,D2 ;if the right button is clicked
BNE Loop
MOVE.B D1,D0 ;THEN MOVE SWICH VALUES ON LEDS
MOVE.B D0,LEDS
MOVE.B #0,one
CMP.B D1,D3
BEQ ZERO
DIVS.W #2,D1
CMP.B D1,D3 ;IF D1=D3 WHICH ZERO, THEN
BEQ EVEN ; NUMBER IS ODD
BRA ODD ; ELSE DISPLAY EVEM
EVEN MOVE.B #%1111001,one
ODD MOVE.B #%0111111,one
ZERO MOVE.B #%1011001,one
END START
すぐにゼロに。 – stark
@ stark:ありがとう、しかし、私はintをもっと説明してくれるとはどういう意味ですか?あなたは{BRA Loop}である別の行を入れましたか? – nas2016
ところで、 'DIV 'で奇数/偶数をテストする必要はありません。数値をバイナリ形式に分割すると、各ビットの値は2^iになります。 (1 <= i)の場合、2^i = 2 * 2 ^(i-1)であるため、値が2で割り切れることを意味します。唯一の例外は2^0 = 1です。これは2で割り切れません。つまり、最小値ビットを除いて、2のべき乗の2乗(1 <= i)で全体の値が構成されます。値1を持ちます。したがって、最下位ビットが設定されている場合に限り、バイナリ形式に変換された数値は奇数です。 regの最下位ビットをテストする。 'BTST#0、D1'' BEQ D1_is_even'を使うことができます。 – Ped7g