アセンブリ言語がわからね!?
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2008/07/13(日) 00:29:50ID: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をつかってやれ
問題のキーポイントを軽くでいいので書いていただけるとうれしい
ネ申様よろしくおねがいします!
0002(1)の問題の解答例
2008/07/14(月) 00:28:12ID:+cOVhM3l0MOV 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
0003(2)の問題の解答例
2008/07/14(月) 00:39:18ID:+cOVhM3l0MOV 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ビット加算命令てあったっけ?
0004(3)の問題の解答例
2008/07/14(月) 00:44:57ID:+cOVhM3l0NOT 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
0005↑見直ししてないから
2008/07/14(月) 00:46:53ID:+cOVhM3l00006書き込み主
2008/07/14(月) 01:38:02ID:csrHBSWO01と3はこれみて自分なりに組み立ててみた
でも2が…8085に16ビットの加算命令自体がない…どうすりゃいんだろう…って感じ
命令表とにらめっこ中
0007名無しさん@お腹いっぱい。
2008/07/14(月) 02:04:28ID:+cOVhM3l0無条件分岐と次の命令を無効化する命令で(ry
更に加算命令すらもってないのすら普通にある、
■ このスレッドは過去ログ倉庫に格納されています