2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

アセンブリ言語がわからね!?

1 :名無しさん@お腹いっぱい。:2008/07/13(日) 00:29:50 ID:4qyXefBd0
アセンブリ言語わかるネ申タスケテ

問題は
次の処理を行うプログラムを書きなさい
(1)[80A1h] ← (B+C)*2-[80A0h]*3 オーバーフローは考慮不要
(2)[80B3h][80B2h] ← [80B0h]+[80B1h]*2 和は16ビットで求める(分岐命令を使用してもよい)
(3)A ← B・C(Cの上に_)+H(Hの上に_)・L (論理演算)

CPUは8085CPUで(2)は上位を[80B3h]にいれるということと(3)の(〜の上に)というのは否定の意味でANA、ANI、ORA、ORI、XRA、XRIをつかってやれ

問題のキーポイントを軽くでいいので書いていただけるとうれしい

ネ申様よろしくおねがいします!

2 :(1)の問題の解答例:2008/07/14(月) 00:28:12 ID:+cOVhM3l0
8085のニーモニックは覚えてないがこんなところだろ
MOV B,0xxH ;Bレジスタに初期値をいれる
MOV C,0xxH ;Cレジスタに初期値をいれる
MOV A,B ;メインのレジスタにコピーする
ADD A,C ;AレジスタとCレジスタを加算してAに格納(B+C)
ADD A,A ;AレジスタとAレジスタを加算してAに格納(2倍)
MOV HL,80A0h ;参照目的のアドレスをHLに煎れておく
SUB A,[HL] ;1回目減算(A←A-[HL])
SUB A,[HL] ;2回目減算
SUB A,[HL] ;3回目減算(3倍分引く)
INC HL ;HLに次のアドレスを設定[80A1h]
MOV [HL],A ;格納終わり

まあいきなり書いたから間違っていたらごめんw

3 :(2)の問題の解答例:2008/07/14(月) 00:39:18 ID:+cOVhM3l0
コメントはめんどいからヤメタw,命令表もってないので20年以上前の記憶のみ
MOV C,0 ;格納の上位桁として使う
MOV HL,80B1h
MOV A,[HL]
ADD A,[HL]
XCH A,C
ADDC A,0 ;キャリーを数値化する
XCH A,C
DEC HL
ADD A,[HL]
XCH A,C
ADDC A,0 ;キャリーを数値化する
XCH A,C
MOV HL,80B2h
MOV [HL],A ;下位桁の格納
MOV A,C
INC HL
MOV [HL],A ;上位桁の格納

たぶんこんな命令語だった気がする。
8085に16ビット加算命令てあったっけ?

4 :(3)の問題の解答例:2008/07/14(月) 00:44:57 ID:+cOVhM3l0
MOV A,C
NOT A ;NOTてあるよね?XOR A,0FFhかも?
OR A,B
MOV D,A ;DレジスタにAレジスタの内容を退避
MOV A,H
NOT A
OR A,L
ADD A,D ;Aレジスタに答えが入る
まあ、パズルを解く感じでやればいいだけだよ。命令表とにらめっこさせるのが
宿題の目的だろ?つまり本人がやらなければ意味なしw(悪魔)

すぐ、このスレがDAT落ちしますようにw

5 :↑見直ししてないから:2008/07/14(月) 00:46:53 ID:+cOVhM3l0
まあ、自分でもやってみることだ。

6 :書き込み主:2008/07/14(月) 01:38:02 ID:csrHBSWO0
ありがと!
1と3はこれみて自分なりに組み立ててみた
でも2が…8085に16ビットの加算命令自体がない…どうすりゃいんだろう…って感じ
命令表とにらめっこ中


7 :名無しさん@お腹いっぱい。:2008/07/14(月) 02:04:28 ID:+cOVhM3l0
世の中には条件分岐命令がないCPUがあるよ。
無条件分岐と次の命令を無効化する命令で(ry
更に加算命令すらもってないのすら普通にある、

3 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)