• 締切済み

マクロアゼンブラが分かる人

MASMを勉強していて困っています。 指定されたセグメントのコードを表示するプログラムを作成中ですがオフセットアドレスとセグメントアドレスが取得できません。 あと表示方法を ADDRESS |00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ---------+----------------------------------------------- 0000:0000 |9E 0F C9 00 69 04 70 00 16 00 F0 11 69 04 70 00 0000:0010 |69 04 70 00 54 FF 00 F0 FF 90 00 F0 53 FF 00 F0 のようにしたいのですが ADDRESS |00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ---------+----------------------------------------------- 0000:0000 |9E  0000:0000|0F  0000:0000|C9 0000:0000|00 のようになっていて困っています助けてください。

みんなの回答

  • rot-N
  • ベストアンサー率27% (118/432)
回答No.2

オフセット、セグメントは自分で指定しましょう。 プログラム(exe)の引数にして、OSからもらえば良いのでは? 表示方法ですが、ループの飛び先を見直しましょう。 Label0:   アドレス表示    ↓   カウント=0 Label1:   アドレス表示   カウントインクリメント   16未満ならLabel1へ分岐    ↓   行末のCR、LFを出力   Label0へ分岐 コレでやってみてください。

noname#30727
noname#30727
回答No.1

オフセットとセグメントは、全て自分で指定するものです。 オフセットとセグメントがどこに格納されていて、4桁の16進数表示ルーチンには何を渡すのですか? 表示がおかしいのは、アドレスの表示が繰り返されているからで、16回の繰り返しでアドレスの表示がされないようにすればいいです。 問題となっている部分のコードを示してもらえないと、具体的な事は何も言えません。

関連するQ&A

  • MASMのセグメント+オフセットと物理アドレス値

    素人、アセンブリ言語をかじっています。専門的な教育は受けてません。 MASMではアドレス値を指定するのに セグメント値+オフセット値でしていします。 セグメント値を確定しオフセット値が決まれば当然物理アドレス値はきまります。 セグメント+オフセット -> 物理アドレス値 :一対一に対応しています。 しかし 物理アドレス値 -> セグメント+オフセット :一対一の対応 不可 だと思います。 セグメント値がきまらなければ一対一の対応はしませんし、物理アドレスからセグメント値は決められないと思っています。 物理アドレスからセグメント値がきまるのでしょうか? この辺の対処はどうなっているのでしょうか? MASM -> 機械語  対応はできますが、 機械語->MASM どう対応するのか? をふくめて、どうなっているのでしょうか 宜しく願います。

  • 56.comという動画共有サイトからダウンロードしたFLVが再生できない。

    www.56.com という動画共有サイトからダウンロードしたFLV形式の動画が、GOM Playerで再生できません。再生しようとすると ・再生に必要なコーデックがインストールされているか確認してください や、 ・メディアファイルが損傷されていないか確認してください などのメッセージがでます。 他のYouTubeなどからダウンロードしたFLVは再生できます。 ちなみにこれが失敗したバイナリ情報です。↓ -------------------- BINARY INFO -------------------- FileName : abcecw@56.com_56flv_121716955033x.flv Header Data : 46 4c 56 01 01 00 00 00 09 00 00 00 09 09 00 26 FLV............& 60 1f 52 c0 00 00 00 00 12 00 00 86 40 80 a0 00 `.R.........@... 83 12 aa 24 f1 51 27 8a ff ff cc 54 54 54 53 ff ...$.Q'....TTTS. fe 62 82 82 62 7f ff f3 14 14 13 13 81 ff 98 a0 .b..b.......... a0 98 9f ff fc c5 05 05 04 ff ff e6 28 28 26 29 ............((&) ff ff 31 41 41 41 4f ff f9 8a 0a 0a 09 ff ff cc ..1AAAO......... 50 50 4c 4f ff fe 62 82 82 62 7f ff f3 14 14 13 PPLO..b..b..... 13 ff 81 98 a0 a0 98 9f fc 0c c5 05 04 c4 ff e0 ................ 66 28 28 26 27 ff 03 20 a0 a0 96 3c 4f fe 0a 62 f((&'.. ...<O..b 82 82 62 9f f0 53 14 15 14 14 ff 81 98 b0 b0 a8 ..b..S.......... af fc 0c a2 e2 22 e2 2e ff ff 58 b1 7d b1 c3 f4 ....."....X.}... 7f 8e 1e 04 15 75 51 71 f3 2f 0f f4 48 2f 57 f3 ....uQq./..H/W. 10 47 df f8 f4 f9 f2 11 2f ff 9e b7 dc 79 90 40 .G....../....y.@ aa ed f7 f4 75 61 a2 31 f8 8c f8 37 f5 9f 7c bc ....ua.1...7..|. 03 7e d1 7f e5 4a 79 23 f4 10 65 cf 89 2a e1 09 .~..Jy#..e..*.. f8 f4 14 72 12 a2 83 00 e5 74 4b a9 1d 13 af 7d ...r.....tK....} 5a 34 80 1b f5 54 be 00 79 7a 8f 36 3b 7a 5f 95 Z4...T..yz.6;z_. 97 ff f3 d4 03 44 be dc 36 84 3e 06 06 2c 4b 21 .....D..6.>..,K! 56 55 73 ea aa d5 d1 47 df 5e 8e 10 69 78 40 cd VUs....G.^..ix@. 08 62 4f ed e9 b5 20 60 3c 04 bf 02 94 be 90 a4 .bO... `<....... 83 00 dd 77 e5 c0 d1 c1 b2 06 71 8a 5e f4 79 eb ...w......q.^.y. 3f 06 01 a8 03 44 45 75 c9 05 c0 82 01 ff 06 00 ?....DEu........ 3c 4b 1f d1 fd 1e c6 be cb 9b 9e a6 5c 0c 0c 98 <K..........\... 96 47 18 a5 ef 27 9c 35 03 01 e4 08 20 c1 7b 09 .G...'.5.... .{. 63 52 c0 40 2f 57 f0 84 5d 7f 6f ee 76 d6 de e6 cR.@/W..]o.v... 60 0c 00 77 02 11 71 14 47 9e f9 5d 41 d8 f2 e0 `..w..q.G..]A... 41 81 06 97 5a 10 84 bf 97 7e 31 e3 24 03 f0 6f A...Z....~1.$..o ef 5d 2e 06 01 c8 18 07 10 50 fb ca c2 08 96 de .].......P...... 65 7a 58 30 0d e0 1a 01 e5 c3 f9 15 09 6a fd e1 ezX0.........j.. e4 bc a6 50 c0 34 18 00 fc 08 6a 84 91 f4 e5 fc ...P.4....j..... 1e c1 7a b0 30 0d 77 44 99 9d cf 49 70 9e 20 eb ..z.0.wD...Ip. . fd b1 cf 63 f0 20 80 68 f6 5a 10 47 f9 b3 4e a9 ...c. .h.Z.G..N. どうしたら再生できるかどなたか教えてください。 お願いします。

  • malloc()関数内でセングメント例外が発生する

    malloc()を使用する箇所にメモリ確保時の例外処理を 行うようにしていますが、そこに移る前にシステム関数 でセグメント例外にて落ちてしまいます。 原因が分かりません。 pstack core: ff041bf8 _smalloc (8, ff0c27a0, 0, 8, 0, 0) + 8c ff041c38 malloc (2, 0, ff0bc000, ff041c44, d00180, 0) + 20 ff15635c __1c2n6FI_pv_ (2, 82247, 13640, 557cc, ff169978, 2) + 28 000557cc __1cJSnmp_TrapNsnmp_trapsend6Fpkc222ki3E_b_ (163a8d8, 163a8f8, ffbedefc, ffbedf1c, 6, 1) + 17c 00055320 __1cJSnmp_TrapQsnmp_trapsendAll6MkiE_b_ (15b4648, 111e560, 81f88, 89438, d18ca0, 82050) + 5c0 宜しくお願い致します。

  • ゲーム中ページ違反が出てしまいます。

    FAIRYLAND のページ違反です。 モジュール : FAIRYLAND.EXE、アドレス : 019f:005e2e53 Registers: EAX=0726303a CS=019f EIP=005e2e53 EFLGS=00010216 EBX=00b8d524 SS=01a7 ESP=00b8d19c EBP=00b8d1a4 ECX=0000000e DS=01a7 ESI=07263000 FS=3bd7 EDX=00000002 ES=01a7 EDI=06c5f174 GS=0000 Bytes at CS:EIP: f3 a5 ff 24 95 6c 2f 5e 00 8b c7 ba 03 00 00 00 Stack dump: 00008548 00b8d4d8 00b8d1d0 005618b9 06c5f010 07262e9c 0000019e 06c5f00c 06c5f00c 010080ff 00000004 01c5f00c 00008548 00b8d214 00560aed 0000019e このようなメッセージが出るのですが対処方法あるのでしょうか? ウィンドウズ98SE使ってます。 よろしくお願いします。

  • NASMかNASKの文法の本

    NASMかNASKのアセンブラを使っているのですが、MASMと構文が異なっている?せいか、エラーなりました。 MASMでは DW offset ADR_KOKO DW seg ADR_KOKO でOKだと思いますが、NASM/NASKではどうするのでしょうか? NASM,NASMの文法など詳しく載っている本などありますか?(洋書でも構いません。) DW 0 ; A---> オフセット DW 0 ; B---> セグメント ADR_KOKO: ;ここのオフセットとアドレス値をA,Bにセットしたい mov eax, 1  ... RET

  • 指定した区分と一致するコードは取得しないSQL

    いつもお世話になります。 以下のデータ構成で、区分に「A01」「D01」のいづれかが含まれているコードは 取得しないようにしたいのですが、これを、SQLのみで実現するためにはどのように すればよいでしょうか。 【テーブル】 コード 区分 10000  A01 10000  B01 10000  C01 20000  C01 20000  D01 30000  B01 30000  E01 40000  B01 40000  E01 40000  F01 ↓ 【結果】 30000 40000 ※コード10000はA01が含まれており、20000はD01が含まれているため対象外 普通のプログラムならば、全て取得してきて、ループしながら該当する区分の場合は continueするなりしてはじけばい、というように想像できるのですが、SQLのみでやるということで、 ループ処理は行えないためどうしてもスマートな方法が思いつきません。 何かよい方法はないでしょうか。 宜しくお願いします。

  • Netscapeが強制終了

    Netscape7.1を起動すると同時に ”不正な処理をした為強制終了します”と出てしまいます。 詳細を見ると ”NETSCP のページ違反です。 モジュール : KRNL386.EXE、アドレス : 0002:00004317 Registers: EAX=00005f5f CS=0157 EIP=00004317 EFLGS=00000216 EBX=c1890b40 SS=51af ESP=00007e42 EBP=00007e4e ECX=0000480d DS=0177 ESI=00794ff4 FS=1c07 EDX=c1894a21 ES=0177 EDI=00795000 GS=0000 Bytes at CS:EIP: 67 ab fe 46 ff fe 46 ff e2 92 8a 46 ff 59 66 5b Stack dump: 7e460000 0077201f d0b704bc 43807e5e 201751b7 00000001 000004b8 0a9d7e90 ffff201f 51b704bc 51b7049a 05f20494 51b7049a 000c0040 00010156 51b704b8" 私には呪文としか見えません。 宜しくお願いします。

  • プログラム制御

    既存のプログラムが有り解読を行っていますが理解不明です。ご教示を宜しくお願いします。コード内容は、 LOAD A (=6000) - B (=1500) STORE C (A-B→C) LOAD D (=350) - E (=10) STORE F (D-E→F) / C STORE G (F/C→G) * B + D STORE H ((G*B)+D→H) 本プログラムはモータのPID制御を行っており、その一部のコードです。 内容としては、一次方程式を形成し変動割合を導出しているのかと考えましたが一次方程式では+Dのコードが+Eであると思われます。 何を形成しているのでしょうか。

  • 信頼済みでないコンピュータがたくさん検出されます?

    ウィルスバスター2005の無線LANパトロールを実行するとたくさんの信頼出来ないコンピュータが検出されます! 無線LANは使用していません! MACアドレス 2005/03/01 13:34 00:50:56:F4:1B:2C 00:50:56:FD:5D:E8 00:E0:29:88:7A:83 00:07:40:8F:98:18 00:50:56:98:27:04 00:50:56:F0:8C:94 00:50:56:FA:5C:16 00:50:56:E3:5A:D2 00:50:56:FD:78:CA 00:50:56:E9:CF:2A 00:50:56:FF:ED:46 00:50:56:FF:49:26 00:50:56:E8:FA:8A 00:50:56:EB:D4:7A 00:50:56:F4:FC:0E 00:50:56:FB:FC:76 00:50:56:F8:0F:DA 00:50:56:E1:46:E2 00:50:56:E4:B9:6E 00:50:56:EE:78:8A 00:50:56:FF:CB:52 00:50:56:E9:CF:76 00:50:56:E1:A4:46 00:50:56:FB:E8:06 00:50:56:E5:84:7E 00:50:56:FA:40:FA 00:50:56:E3:C9:7E 00:50:56:F7:42:52 00:50:56:E0:F5:6A が検出されました! これは不正アクセスでただ乗りされたのでしょうか? ハイテク犯罪化に届け出た方が良いでしょうか?

  • メーリングリストって

    メーリングリストについてお聞きしたいのですが、 質問1.メーリングリストって送られてくる人以外のアドレスも表示されるのですか。要するにAさんからB,C,D,E,Fに送るとBさんはC,D,E,Fのアドレスが表示されているのですか。BCCそれともCCで送られてくるのでしょうか。 質問2.同じくCさんからDさんに送ることはできるのですか、できるとしたらAさんはそれを見たり参加したりできるのですか?

専門家に質問してみよう