誰でもできるのです8080組み立てのコードをパズルの'?
-
22-09-2019 - |
質問
友人た8080組み立てコードの一部としてパズルのための課題である。このコード:
3E 02
4F
C6 04
47
11 41 01
21 69 00
19
76
ているが、そこでは彼が必要と価値をB、C、住宅ローン
誰でもできるので解決するのがポイントのか。
更新
アンダースポイラー:の解う:
C=02、B=06,D=01,E=41,H=01,L=AA
解決
ここでは8080の命令セットへのガイドです。 http://www.comsci.us/cpu/8080/isindex.html 命令ストリームのようなルックスを掲載進。あなたはそこから行くことができるはずです。どのように楽しく古い学校!
幸運ます。
他のヒント
は参考のため、ここでは解体です
3E 02 mvi a, 2 ; Move o1 <- immediate data
4F mov c, a ; Move o1 <- o2
C6 04 adi 4 ; Add immediate to A
47 mov b, a ; Move o1 <- o2
11 41 01 lxi d, 141h ; Load register pair with immediate data
21 69 00 lxi h, 69h ; Load register pair with immediate data
19 dad d ; Add register pair to HL
76 hlt ; Halt
あなたはそれを分解する必要があります。
はすなわち、それらのニーモニックに六角OPコードに変換されます。
ここでの例では、の参照する。
あなたは3E 02のように見えるが、Aレジスタに値02を入れているように、3Eは「MVI A、D8」であることをここから見ることができます。
あなたがニーモニックをデコードしたら、あなたがプログラムアウト彼らが実際に平均と数字を調べることができます。
手作業で行うには簡単に十分ます。
完全スポイラー
タグ
0000h: 3e02 mvi a, 2h ; A = 20002h: 4f mov c, a ; C = 20003h: c604 adi 4h ; A = 60005h: 47 mov b, a ; B = 60006h: 114101 lxi d, 141h ; DE = 0141h0009h: 216900 lxi h, 069h ; HL = 69h000ch: 19 dad d ; HL = 69h + 141h = 1aah000dh: 76 hltA = 6、B = 6、C = 2、D = 1、E = 41H、H = 1、L = 0aah
あなたはそれを実行する必要はありません - あなたはそれを翻訳する必要があります。 8080のテーブルオペコードこののように、10分の仕事とあなたが分解していますコード。その後、その答えから精神的に仕事にそれをシミュレートすることができます。
は、このから判断すると、あなたの最善の策は、8080エミュレータの検索を行うと、エミュレータに対してそれを実行し、それから答えを得ることであろう。
希望このことができます、 宜しくお願いします、 トムます。
3E 02 ;mvi a, 02h -- load A with 02h
4F ;mov c,a -- move A into C (A remains 02h)
C6 04 ;adi 04h -- a = a + 04h (A now contains 06h)
47 ;mov b,a -- BC pair now contains 0602h
11 41 01 ;lxi d, 0414h -- DE now contains 0141h
21 69 00 ;lxi h, 0069h -- HL now contains 0069h
19 ;dad d -- HL = HL + DE
76 ;hlt -- halt processing
所属していません StackOverflow