アセンブラの宿題質問スレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/10/18(水) 00:04:05アセンブラ好きのお兄さんに尋ねるスレ。
・必ずCPUの名前を書くこと!
・情報を小出しにしない。書ける情報は全て書いた方が得だよ。
0322デフォルトの名無しさん
2007/02/19(月) 13:40:24レスありがとうございます
プログラムが16進数で書いてあり、読める形にしたいのですが
どうしたら、ふるいMPUなのでコード表もありません、
ウインドウズ環境で動く逆アセンブラのソフトないですかね?
0323デフォルトの名無しさん
2007/02/19(月) 14:21:22使い方わかりません
http://www.vector.co.jp/soft/dos/prog/se358557.html
お願いします
0324デフォルトの名無しさん
2007/02/19(月) 20:16:15> どうしたら、ふるいMPUなのでコード表もありません、
英語でいいならフリースケール・セミコンダクタの英語サイトに行けば無料配布してるぞ。
ProduntsからHC11ってのを選べばいろいろ出てくる。
0325デフォルトの名無しさん
2007/02/19(月) 20:17:100326デフォルトの名無しさん
2007/02/20(火) 04:56:388bitのソフトなんてちっちゃいんだから、作っちゃったほうが手間要らないのでは?
0327デフォルトの名無しさん
2007/02/20(火) 06:22:06問題は、今時5.25"を読める環境がないことだなw
勉強がてら、自分で作るのお勧め。
なーに、バイナリモジュールを16進ダンプかHEXフォーマットかSフォーマットにしてやって、
それを入力に使えばスクリプト形言語でちょちょいのぱーだよ。
0328デフォルトの名無しさん
2007/02/20(火) 13:47:34>>327
ご指導ありがとうございます
初心者すぎて、ちょっと無理みたいです、
データアップロードしますので、どなたかお願いします
0329デフォルトの名無しさん
2007/02/20(火) 18:57:410330デフォルトの名無しさん
2007/02/21(水) 03:11:50アップロードします
http://up.kabubu.net/cgi/up2/upload.php
ファイル名 ”68hc11バイナリ
よろしくお願いします。
0331デフォルトの名無しさん
2007/02/21(水) 03:15:42ファイル名”バイナリーファイル68hc11”でした
0332デフォルトの名無しさん
2007/02/21(水) 20:36:21これってプログラムじゃなくて何かのデータなんじゃ・・・?
0333デフォルトの名無しさん
2007/02/22(木) 00:19:170335333
2007/02/22(木) 06:43:4232KBのうち、オフセット0x1d1cから0xffが集中して入っているし、
オフセット0x20e0からは3バイト+1-2バイトのタグ型データ構造に見えるし、
他にもいかにもデータって感じでバイト列が並んでいるがね。
0336デフォルトの名無しさん
2007/02/22(木) 13:59:22全部Bxxとかの条件分岐だけで飛んでたりしたら嫌だなぁ。
眺めてるとだんだん無圧縮のスプライトパターンデータとかに見えてくる。
これの出所ってどこ?
0337デフォルトの名無しさん
2007/02/23(金) 02:33:30ボッシュの8ビットCPUです。
なんとかなりませんか?
0338デフォルトの名無しさん
2007/02/23(金) 02:36:330339デフォルトの名無しさん
2007/02/23(金) 03:00:020340デフォルトの名無しさん
2007/02/23(金) 03:29:25エンジンコントロール用みたいです、
0341デフォルトの名無しさん
2007/02/23(金) 09:22:12もしそうなら暗号化キーがなきゃお手上げ。
0342デフォルトの名無しさん
2007/02/23(金) 12:29:26逆アセンブルしたソースを人が読める形に修正する、なんて殆どの場合不可能だよw
可能な場合なんてむしろ例外的。
それは人的資源の質や量の問題と無関係に、ね。
0343デフォルトの名無しさん
2007/02/23(金) 12:53:31>>337
エンジンコントロール用と言ったって、アクセル開度制御しかしないのと空燃比から加給器の制御までするのとでは全然違うわけだが。
少なくとも可読文字で数字が並んでたりするので、自分でダンプくらい眺めなさいよ。
0344デフォルトの名無しさん
2007/02/23(金) 13:03:09【チューン】ECUって難しいの?【仕上げ】
http://hobby9.2ch.net/test/read.cgi/car/1161445315/l50
0345デフォルトの名無しさん
2007/02/24(土) 03:47:57暗号キーは無いみたいです、
土日でイロイロ調べてみます、
お世話になるかもしれませんがよろしくお願いします
0346デフォルトの名無しさん
2007/02/24(土) 18:09:350347デフォルトの名無しさん
2007/02/25(日) 05:15:02ハンドアセンブルしようとデータシート探しても見つからず、、、、
鬱
0348デフォルトの名無しさん
2007/02/25(日) 17:33:23何の罪になると言うんだ?
0349デフォルトの名無しさん
2007/02/25(日) 18:54:54逆アセ自体を禁止しているものであれば、、ということだろう。
0350デフォルトの名無しさん
2007/02/25(日) 20:49:28少なくとも「是非やってください」と言うところはない。
0351デフォルトの名無しさん
2007/02/26(月) 08:27:27法律で禁止されてるのを破るのが犯罪。
0352デフォルトの名無しさん
2007/02/26(月) 21:32:320353デフォルトの名無しさん
2007/02/26(月) 23:27:06間違ってますよ、その認識。
0354デフォルトの名無しさん
2007/02/27(火) 10:08:41よければ詳しく。
0355デフォルトの名無しさん
2007/02/27(火) 13:18:380356デフォルトの名無しさん
2007/02/27(火) 16:23:38関数を書きたいです。 $a0に変換されたストリングを保管するアドレスが渡されるという前提です。
0357デフォルトの名無しさん
2007/02/27(火) 16:24:240358デフォルトの名無しさん
2007/02/27(火) 18:08:50アセンブラの勉強のために、質問してただけなんですけど。
大丈夫ですよね、、、、、
で、結果報告です、
ハンドアセンブラしようとデータシート探しましたが見つからず
おまけに、68hc11ではなくて、6803?の疑問が浮上しました
1993年に68hc11発売されていましたか?教えてください
0359デフォルトの名無しさん
2007/02/27(火) 18:42:221984年発表。
0360デフォルトの名無しさん
2007/02/27(火) 23:17:56a=b+cを実現するためのアセンブラを示し、その横にマシン語を示すこと
ただし、aは100h番地、bは10h番地、cは20h番地に割り当てられているとする(hは16進数の表現の意味)
おねがいします
0361デフォルトの名無しさん
2007/02/27(火) 23:26:29まったく・・・
犯罪:罪を犯すこと。また、犯した罪。
罪:法律的・道徳的・宗教的な規範に反する行為。など
つまり、違法かどうかと犯罪とは必ずしも対ではない。
0362デフォルトの名無しさん
2007/02/28(水) 00:11:29激しくスレ違いだけど、契約って行為そのものが法律行為だから
これを履行しないことは違法性を構成するに決まってるじゃんw
っていうか、法的拘束力のない契約にそもそも何の意味があるんだよw
0363デフォルトの名無しさん
2007/02/28(水) 00:38:19契約は、必ずしも法律行為ではないよ。
0364デフォルトの名無しさん
2007/02/28(水) 04:19:47素人が趣味で解析したがるのは迷惑。
自分のマニアっぷりを自慢するために解析結果を公開したりするし。
0365デフォルトの名無しさん
2007/02/28(水) 04:23:00心配ならメーカに問い合わせたら?
つーか、アセンブラの勉強のためなら逆アセンブルするのは無意味だよ。
前から何人も書いているけどコード部とデータ部の区別やら環境やらが判らんと意味を為さないし。
そんなことよりも、アセンブラの勉強のためなら素直にアセンブラで書かれたソースを読めばいいじゃない。
0366デフォルトの名無しさん
2007/02/28(水) 05:45:41; a=b+cを実現するためのアセンブラを示し、その横にマシン語を示すこと
; ただし、aは100h番地、bは10h番地、cは20h番地に割り当てられているとする
CSEG
0000 2A1000 lhld 010h ; b
0003 EB xchg
0004 2A2000 lhld 020h ; c
0007 19 dad D
0008 220001 shld 0100h ; a=b+c
000B END
0367デフォルトの名無しさん
2007/02/28(水) 15:07:48ありがとうございます!
とても助かりましたー
0368デフォルトの名無しさん
2007/03/02(金) 19:32:51アップロードお願い
0369デフォルトの名無しさん
2007/03/02(金) 20:04:420370デフォルトの名無しさん
2007/03/03(土) 02:29:30オペコードマップ
ttp://home.earthlink.net/~tdickens/68hc11/68hc11_opcode_map.html
命令表
ttp://home.earthlink.net/~tdickens/68hc11/68hc11_opcode_map.html
どっちも英語ではあるけど、表だから問題なく読めるよね。
0371デフォルトの名無しさん
2007/03/03(土) 04:35:10ってことで、ここからオペコードマップにも命令リストにもアクセスできる。
ttp://home.earthlink.net/~tdickens/68hc11/docs_references.html
0373デフォルトの名無しさん
2007/03/04(日) 23:58:34今週は少し進みましたが、、、、、
逆アセンブラソフトほしいn
こういうソフト見つけましたが使えますかねー?
http://down.upsdn.net/html/1/1.html
0374デフォルトの名無しさん
2007/03/05(月) 10:51:160375デフォルトの名無しさん
2007/03/05(月) 10:52:01逆アスくらい自力でできるだろうよ。
って、元辿って読んだらリバースエンジニアリング目的かよ。
0376デフォルトの名無しさん
2007/03/05(月) 10:56:370377デフォルトの名無しさん
2007/03/07(水) 03:41:12修正お願いします。。
(3回目のLOOPでゼロフラグが立たない理由もお願いします)
ORG 8000H
XOR A
LD B,06H
LD C,0AH
LOOP: LD D,A
LD A,C
AND 01H
JP Z,SKIP
LD A,D
ADD A,B
LD D,A
SKIP: SLA B
SRA C
JP NZ,LOOP
LD A,D
LD (8200H),A
JP 0000H
END
0378デフォルトの名無しさん
2007/03/07(水) 04:04:51LOOP: LD D,A
LD A,C
↓
LD D,A
LOOP: LD A,C
JP Z,SKIPでZが立ってる時って、A=0だろ。そのままJP NZ,LOOP → LD D,A(D=0) になってるように思う。
あとSRA Cって10→5→2→1→0
0379デフォルトの名無しさん
2007/03/07(水) 06:06:590380デフォルトの名無しさん
2007/03/07(水) 06:17:370381デフォルトの名無しさん
2007/03/07(水) 11:38:130382デフォルトの名無しさん
2007/03/07(水) 11:49:44で、宿題は?
0383デフォルトの名無しさん
2007/03/07(水) 16:41:430384デフォルトの名無しさん
2007/03/07(水) 22:12:52ちなみに答えは12+24+48=84になってしまいます。
24を足しているのがおかしいのです。
3周目のAND 01Hで0010Hと0001HをANDした結果Zフラグが立って
スキップにいけば問題解決なんですが、スキップに飛びません。
Aレジスタの中身を見てみるとちゃんと0000HなのですがZフラグが
立ちません。今みてみるとHフラグは立っていました。
なぜZフラグが立たないのでしょうか
0385デフォルトの名無しさん
2007/03/07(水) 22:46:270386デフォルトの名無しさん
2007/03/07(水) 23:28:04CPU壊れてるんじゃね?
0387デフォルトの名無しさん
2007/03/07(水) 23:28:19Z80?
>>385
A=0で立たないフラグはもはやゼロフラグじゃないだろw
0388デフォルトの名無しさん
2007/03/08(木) 04:19:400389デフォルトの名無しさん
2007/03/08(木) 05:23:49アセンブルしたコードを貼って味噌。HEX出力でもバイナリダンプでもいいから。
#つーか、なんでjr使わないでjp使っているんだろ。
0390デフォルトの名無しさん
2007/03/08(木) 07:25:450391デフォルトの名無しさん
2007/03/08(木) 07:34:53#8080は互換性あるけど、8085は(8085で追加されたインストラクションが)互換性ないし。
0392390
2007/03/08(木) 07:59:33lstをそのまま貼ると崩れちゃうんで、スペースを全角に直して貼ってみます。
ORG 8000H
8000 AF XOR A
8001 0606 LD B,06H
8003 0E0A LD C,0AH
8005 57 LOOP: LD D,A
8006 79 LD A,C
8007 E601 AND 01H
8009 CA0F80 JP Z,SKIP
800C 7A LD A,D
800D 80 ADD A,B
800E 57 LD D,A
800F CB20 SKIP: SLA B
8011 CB29 SRA C
8013 C20580 JP NZ,LOOP
8016 7A LD A,D
8017 320082 LD (8200H),A
801A C30000 JP 0000H
801D END
0393390
2007/03/08(木) 08:22:45LOOP:時点での
D C B 足し算
1回目 0 1010 000110 足さない
2 0 0101 001100 足す
3 0Ch 0010 011000 足さない
4 0Ch 0001 110000 足す
足したあと、Cregを右シフトで0になるから
3Ch 0000 1100000
こういう展開を期待してるわけですよね?
0394デフォルトの名無しさん
2007/03/08(木) 08:39:560395デフォルトの名無しさん
2007/03/09(金) 04:37:18判らないけど、同じ8bitの掛け算で8085のclibに使われてるコードを貼っときますね。
レジスタ使い・8回loopするとかが違ってるけど、こちらはサイズ優先の工夫がされてるみたい。
MULAB: ; A*B-->A(8bit)
00F0 E5 push hl
00F1 67 mov h,a
00F2 AF xra a
00F3 0E08 mvi c,8
00F5 87 add a
00F6 29 dad h
00F7 D2FB00 jnc 00FB
00FA 80 inr b
00FB 0D dcr c
00FC C2F500 jnz 00F5
00FF E1 pop hl
0100 C9 ret
0396デフォルトの名無しさん
2007/03/09(金) 22:18:38やりたいことは>>393 さんの通りです。
正直どう修正すればいいのか分からずじまいでした。
手直しまでしてもらいましてありがとうございます!
今から参考にして直してみます
0397デフォルトの名無しさん
2007/03/10(土) 06:45:460398デフォルトの名無しさん
2007/03/11(日) 15:19:35たとえば、論理加算で、
ADDL GR1,=100 これはできますよね?
ADDL GR1,=#FFFF こんなように16進数を使うことはできるんですか?
0399デフォルトの名無しさん
2007/03/11(日) 15:28:55俺様がやってることが世界の全てとでも思ってるのか?w
0400デフォルトの名無しさん
2007/03/11(日) 17:29:57頭のゼロで「数値リテラルであってラベルでない」とアセンブラが認識できるから。
cみたいに0xで始まる書き方も許せばいいのにと個人的には思うけど、あまり見かけません。
0401デフォルトの名無しさん
2007/03/11(日) 17:39:43>0xで始まる書き方も許せばいい
これは逆に、c で0Ahや10bという書き方を許さないのが疑問なんだが。
0402デフォルトの名無しさん
2007/03/11(日) 17:44:04自分の身近な物が世の中の全てだと思う奴のことを「セカイ系」って言うらしいけど
最近確かにこういうセカイ系タイプって増えてるな。
リテラルの書き方なんてアセのメーカーによってマチマチじゃん。
マイコン系ならcでもビットワイズのリテラルを許すものもあるし。
0403デフォルトの名無しさん
2007/03/11(日) 17:55:43ここでいってるcはANSIだろう。
asmはいろいろだが。
0404デフォルトの名無しさん
2007/03/11(日) 18:15:52まあ、エスパーの漏れ様が答えてやると、
仕 様 く ら い 読 め
ってことだな。
2.5 機械語命令
adr
アドレスは,10 進定数,16 進定数,アドレス定数又はリテラルで指定する。
リテラルは,一つの10 進定数,16 進定数又は文字定数の前に等号(=)を付けて
記述する。CASL�Uは,等号の後の定数をオペランドとするDC 命令を生成し,そ
のアドレスをadr の値とする。
0405デフォルトの名無しさん
2007/03/11(日) 23:24:050406デフォルトの名無しさん
2007/03/11(日) 23:29:040407デフォルトの名無しさん
2007/03/12(月) 00:53:050408デフォルトの名無しさん
2007/03/13(火) 19:20:14ソースとデスティネーションが右左のどっちか、
リテラルとメモリのラベル、オフセットなどの区別の仕方はどうなってるのか、
そういうのは必ずマニュアルを見て確認してるぞ。
たまにアセンブラのマニュアル忘れてくれる営業さんがいるんだが、
インラインアセンブラとか使うときにどーしろっつーんじゃい。
アセンブラを勉強するなら、環境によってみんな文法が違うってことをまずはじめに覚えろ。
それができたら質問してよろしい。
簡単に言うと、「まず、どのCPUを使うのかを書け!わからなかったらアセンブラに手を出すな!!」
0409デフォルトの名無しさん
2007/03/14(水) 05:12:060410デフォルトの名無しさん
2007/03/14(水) 08:13:35dest/src の順番すらアセンブラによってまちまちだし。
0411デフォルトの名無しさん
2007/03/14(水) 14:46:230412デフォルトの名無しさん
2007/03/14(水) 15:22:060413デフォルトの名無しさん
2007/03/14(水) 18:21:20個人的にはソース・デストの順が好き。
0414デフォルトの名無しさん
2007/03/15(木) 04:40:28その後マイコンの時代になると→がメジャーになってきたね。
0415デフォルトの名無しさん
2007/03/15(木) 07:58:030416デフォルトの名無しさん
2007/03/15(木) 10:18:39store reg, mem
の類は同じニモニックセットでも矢印の向きが変わる典型って訳だな。
0417デフォルトの名無しさん
2007/03/16(金) 18:43:47左レジスタの方が感覚に合うなあ
0418デフォルトの名無しさん
2007/03/16(金) 20:31:120419デフォルトの名無しさん
2007/03/17(土) 22:15:52「右」「左」が区別できる奴なら普通わかると思うが。
一般的な言い回しとは思わないけど。
0420デフォルトの名無しさん
2007/03/17(土) 22:18:58左srcとか左destなら話も分かるが、左レジスタって一体何だよw
0421デフォルトの名無しさん
2007/03/17(土) 23:06:57/::::i::::、:::ヽ、:::::\:ヽ:\::::::ヽ:::、::ヽ::、:',
/::i|::l::ト、ヽ::、:::ヽ:、::::::\::ヽ::::l::::ヽ::i:::i:::!
/:/:!:::!:|::ヽ:\ヽ::::、:\::::ヽ:::ヽ!::::::i::|:::!::!
!ハ::|::::i::l:|心、:ヽ::\:ヽ_\、\:::ヽ:::|!::|:|i 駄目だ こいつ・・・
i、:!:|:、N{、ヒjヽゝ\ヾイ ヒj >、ヽi:、|!:|:l
ヽ:!::トヽ ̄ l! ` ` ̄´ |::l::|:|j:,!:! 早くなんとかしないと・・・
ト、::! u j |::/lj:::!リ
ヾ、 丶 - u リイ:|リ
リヽ ‐、ー- 、_ /イ:::i
rー'"ト:l゙、  ̄ ./ , |::!
/ ヘ ヾ ヽ、 _,. ' / |:
■ このスレッドは過去ログ倉庫に格納されています