0

私が最初にメモリを取る階乗の数を見つけたいです。(intel8085)

編集:私は初心者です。アセンブリコードの書き方がわかりません。

擬似コード:

input n
fact = 1
loop:
..multiply fact by n
..decrement n
..test n
..jump if not zero to loop
output fact
4

6 に答える 6

4

そもそも、8085を使用する予定がある場合は、8085の書き方を学ぶほうがよいでしょう。特に古い8ビットマイクロプロセッサの場合、アセンブラは、正規のソフトウェアを取り込んでパッチを適用できるものではありません。

第二に、あなたは正確に数字に何を使っていますか?8085には8ビットバスがあり、レジスタを16ビットとして使用できます。16ビットの数値に制限されている場合は、9を表すことができないため、ルックアップテーブルを使用できます。とりあえず。

第三に、アルゴリズム的な方法でそれを行っている場合は、最初に乗算に使用しているものを調べたいと思うかもしれません。8085にはオンチップ乗算はありません。(私はかつて、8085にはないいくつかの機能を備えたZ80を使用した多倍長乗算と除算のコンテストで優勝しました。特に、代替レジスタバンクを使用していくつかの便利なことを行うことができました。)

于 2010-03-16T15:50:48.263 に答える
3

このプログラムを使用すると、答えが24ビットを超えない8ビット数の階乗を見つけることができます。入力はアドレス位置に与えられ、#2070出力は2つのメモリ位置に順番に与えられます#2074 #2073 #2072

    LHLD 2070
    ANI 00
    MOV C,L
    MOV D,A
    MOV E,A
    XCHG
    DCR C
    JZ EXPT
    JM EXPT
    MOV B,C
L1: DAD D

    JNC BAK1
    INR A
BAK1:   DCR C

    JNZ L1
L3: DCR B

    JZ STOP
    MOV C,B
    XCHG
    LXI H,0000
L2: DAD D

    JNC BAK2
    INR A
BAK2:   DCR C

    JNZ L2
    JMP L3
EXPT:   MVI A,01

    STA 2072
    JMP END
STOP:   SHLD 2072

    STA 2074
END:    HLT
于 2013-07-24T07:12:52.193 に答える
2

Intel 8085プロセッサを使用して、8ビットの数値(この場合は5)を使用して、次のように記述できます。

mvi b,05
mov c,b
dcr b
l1: mov d,b
mvi a,00
l2: add c
dcr d
jnz l2
mov c,a
dcr b
jnz l1
hlt

5の階乗は16進数で78になります。ロジックは..5!= 5x4x3x2x1

したがって、5を4回加算すると、結果(つまり、20)が3回加算され、以下同様に続きます...(5 + 5 + 5 + 5)、(20 + 20 + 20)、(60 + 60)、120を16進数に変換します。 ..

于 2012-11-21T23:39:46.920 に答える
1
MVI B, 07h
LXI H, 0007h
LXI D, 0007h
DCR B

LOOP1:
    MOV C, B
    LXI H, 0

LOOP:
    DAD D
    DCR C
    JNZ LOOP

MOV E, L
MOV D, H
DCR B
JNZ LOOP1

HLT

これはあなたを助けるかもしれません。これは7用です!。

于 2016-01-01T12:43:06.710 に答える
0

このコードは9の階乗を検索します。DBの値を変更することにより、9までの任意の数の階乗を検索できます。

LHLD 2090
MOV C,L
MOV D,A
MOV E,A
XCHG
DCR C
MOV B,C
L1:DAD D
JNC B1
INR A
B1: DCR C
JNZ L1
L2 : DCR B
JZ END
MOV C,B
XCHG
LXI H,0000
JMP L1
END:SHLD 2092
STA 2094
HLT 
#ORG 2090H
#DB 09H
于 2017-08-28T15:12:20.877 に答える
-1
Org 0000h
Mov dptr,#8000h
Mov a,@dptr
Mov r0,a
Mov r1,#01h
Mov b,r1
L1:mul ab
Dec r0
Mov b,r0
Cjne r0,#00h,l1
Mov r2,a
H:sjmp h
End
于 2013-05-05T04:52:01.363 に答える