懐かしのMS-DOSプログラミング [sc](★0)
-
- 1
- 2010/04/21(水) 12:42:23
-
mov dx,offset msg
mov ah,9
int 21h
mov ax,4c00h
int 21h
msg db '懐かしのDOS時代のプログラミングについて語ろうぜ',0dh,0ah,'$'
-
- 759
- 2014/02/22(土) 16:15:27.07
-
後期のZ80 BASICマシンのメモリレイアウトなんて
ほとんど曲芸状態だったよな
-
- 760
- 2014/02/22(土) 16:19:07.68
-
いや全然
-
- 761
- 2014/02/22(土) 16:27:34.62
-
>>758
理屈じゃなく過去の具体的な実装事例は?
-
- 762
- 2014/02/22(土) 16:32:17.51
-
>過去の具体的な実装事例は?
そんな話誰もしてないだろ
-
- 763
- 2014/02/22(土) 16:57:12.73
-
Z80で64kbite BASIC-ROM、64kbite RAM、64kbite VRAMなパソコンだと
コードとデータの分離や切り替えが効かないとはじまらんだろ
-
- 764
- 2014/02/22(土) 16:57:14.65
-
データバスをチェックとかわけわからんがな、all 0 だったらどうするつもり?
>アクセスの種別によってメモリ空間を分けることは可能だし、
おいおい、データがきてからアドレスバスを変えるのかよ?なんのためにあんだけのマージンとってんだ?
-
- 765
- 2014/02/22(土) 16:59:18.33
-
>データバスをチェックとかわけわからんがな、all 0 だったらどうするつもり?
>おいおい、データがきてからアドレスバスを変えるのかよ?なんのためにあんだけのマージンとってんだ?
なんだ、タイミングチャートも見れない素人かw
-
- 766
- 2014/02/22(土) 17:03:51.14
-
>>763
>Z80で64kbite BASIC-ROM、64kbite RAM、64kbite VRAMなパソコンだと
>コードとデータの分離や切り替えが効かないとはじまらんだろ
バンク切り替えやI/OにVRAM置いたり色々実装はあったが、コードとデータの分離をやった例って聞いたことないわ。
Z80は命令も多いし外部回路でM1サイクル監視するにしてもコードの4バイト目まで判定するのは骨だろう。
-
- 767
- 2014/02/22(土) 19:02:02.20
-
コードとデータが分離できてりゃ
バッファオーバーフロー脆弱性なんか
起こらないだろうね。
そんなもんあんの?
-
- 768
- 2014/02/22(土) 19:10:11.64
-
>>767
意味知らないで「バッファオーバーフロー」とかって恥ずかしくない?
-
- 769
- 2014/02/22(土) 19:10:55.40
-
石頭ハード屋の妄想はつまらんわ
-
- 770
- 2014/02/22(土) 19:14:02.65
-
>>768
意味なら調べればよかろう?
http://www.ipa.go.jp/security/awareness/vendor/programmingv1/b06_01.html
> バッファオーバーラン(注1)
> バッファオーバーラン問題は,C 言語やC++ で書かれたパッケージソフトウェアが
> 抱えるセキュリティ脆弱性の中で最も頻繁に報告されるものの一つである。
>
> バッファオーバーランとは元々,コンピュータのメモリ上の領域(バッファ)よりも
> 大きなデータが渡されているのにプログラムがそれを見逃して領域あふれ(オーバーラン)が
> 起きてしまうことを指す。ところが,こうした欠陥を《うまく》悪用すると,
> そのプログラムのメモリ上に任意のマシン語プログラムを送り込み実行させることが可能になる場合がある。
> 標的プログラムが高い権限で動作するものだった場合,その権限を乗っ取って対象コンピュータを意のままに操ることができてしまう。
>
> (注1・「バッファオーバーフロー」とも言う。本稿では「停まるべき箇所で停止できなかった」
> というニュアンスが強い「オーバーラン」の語を主に用いている。)
それで君はなにがいいたいのだ?
-
- 771
- 2014/02/22(土) 19:21:16.00
-
>>770
>> バッファオーバーランとは元々,コンピュータのメモリ上の領域(バッファ)よりも
>> 大きなデータが渡されているのにプログラムがそれを見逃して領域あふれ(オーバーラン)が
>> 起きてしまうことを指す。
自分で引用してて↑の内容がコードとデータの分離とは関係ないって理解できないのかw
-
- 772
- 2014/02/22(土) 19:30:31.26
-
馬鹿には無理
-
- 773
- 2014/02/22(土) 19:58:39.00
-
「ハードに比べたらプログラミングなんて子供の遊びレベル」と
うそぶく老害は昔からどこにでもいるが、こいつもその一人だろう。
生半可な断片知識で専門外の領域にしゃしゃり出てきて大恥かくのも毎度のこと。
-
- 774
- 2014/02/22(土) 20:03:46.62
-
>「ハードに比べたらプログラミングなんて子供の遊びレベル」と
>うそぶく老害は昔からどこにでもいるが、こいつもその一人だろう。
よほどのコンプレックスがあるらしい
-
- 775
- 2014/02/22(土) 20:08:10.35
-
普段誰からも相手にされず、寂しさと承認欲求のあまり
ここに来てみたんだろうが… 哀れなもんだなw
-
- 776
- 2014/02/22(土) 20:15:01.69
-
>>774
で、773の最後の行は否定しないのな(笑
-
- 778
- 2014/02/22(土) 20:47:00.10
-
>>777
必ずしも 専門=エキスパート じゃないけどな
どんなに落ちこぼれであっても、ある分野で飯食ってりゃ一応専門家
-
- 779
- ◆QZaw55cn4c
- 2014/02/22(土) 22:22:32.61
-
>>767
6809
スタックを分離するだけでわりと十分
-
- 780
- 2014/02/22(土) 22:24:07.92
-
バッファオーバーフローとスタックは直接関係ないので間違い
-
- 781
- 2014/02/22(土) 22:49:42.64
-
>>777
いんや、お前のこと。
-
- 782
- 2014/02/22(土) 22:52:39.91
-
理屈も語れない馬鹿がなんか言ってるなw
-
- 783
- 2014/02/22(土) 22:53:33.46
-
>>771
コードとデータの分離は関係あるよ。
データ部分の実行を制限するのがNXビット
もちろんこれは比較的最近作られたもの
http://ja.wikipedia.org/wiki/NX%E3%83%93%E3%83%83%E3%83%88
NXビットは、端的に言えば「データの誤実行」を防ぐために用いられる。
そのしくみは、メモリをコード(プロセッサ命令)領域とデータ領域とに分離し、
データを配置したメモリ領域にあらかじめ特別な印(属性)を付与することで、
この領域のデータを実行しないようにする(実行を試みた際に例外=エラーを発行する)ものである。
典型的には、バッファオーバーラン攻撃(後述)等に代表される、ヒープやスタック領域等に
置かれたデータを破壊ないしは書き換えて任意のコードを挿入し実行を誘う攻撃を、
オペレーティングシステムとCPUの協調により保護するために用いられる機能である。
その機能自体は、汎用機やワークステーション等の分野では既に特に目新しいものではなかったが、
パーソナルコンピュータ用に最も普及したIA-32/AMD64アーキテクチャにおける実装は比較的最近の出来事であり、
最初に実装したAMD64系列が搭載したものを"NXbit"と呼称したため、一般にはこの名称が普及した。
ノイマン型アーキテクチャのコンピュータでは、プログラムをメモリ上にデータとして読み込み、逐次実行する。
メモリを読み取った際それがデータであるかプログラムであるのかを、単にメモリ上のデータのみをもって判断することは、
ノイマン型では本質的に不可能である。バッファオーバーラン(バッファーオーバーフロー)等と呼ばれる攻撃は、
ノイマン型コンピュータのこのような性質を悪用して行われる。
-
- 784
- 2014/02/22(土) 23:05:12.78
-
>>783
バッファオーバーラン攻撃って目的が任意のコード実行とは限らないんでトンチンカンなこと言ってますよ
-
- 785
- 2014/02/22(土) 23:08:23.73
-
>>784
え? だからなに?
バッファオーバーラン攻撃の目的が任意のコード実行だ。とは
ひとことも言ってないけど? そんな話してないけど?
コードとデータの分離の話。
コードとデータの分離なんてされてないのが普通。
-
- 786
- 2014/02/22(土) 23:18:41.88
-
>コードとデータの分離なんてされてないのが普通。
ハーバードアーキテクチャも知らない人か…
-
- 787
- 2014/02/22(土) 23:21:16.63
-
>>785
> え? だからなに?
> バッファオーバーラン攻撃の目的が任意のコード実行だ。とは
> ひとことも言ってないけど? そんな話してないけど?
↓を引用しててよく言うww
> 典型的には、バッファオーバーラン攻撃(後述)等に代表される、ヒープやスタック領域等に
> 置かれたデータを破壊ないしは書き換えて任意のコードを挿入し実行を誘う攻撃を、
> オペレーティングシステムとCPUの協調により保護するために用いられる機能である。
-
- 788
- 2014/02/22(土) 23:30:52.76
-
>>786
今のパソコンはハーバードアーキテクチャではなくて
ノイマン型アーキテクチャですよ。
なにみんなと違うコンピュータの話してるのさ?
お前の話はみんなと違うコンピュータの話だったんだな。
通りでずれてるはずだ。
-
- 789
- 2014/02/22(土) 23:32:36.43
-
>>787
引用した先が言っていることは、
俺が言っていることじゃないし。
-
- 790
- 2014/02/22(土) 23:42:48.50
-
>>788
> 今のパソコンはハーバードアーキテクチャではなくて
> ノイマン型アーキテクチャですよ。
いつからパソコン限定の話になったの??
-
- 791
- 2014/02/22(土) 23:43:49.87
-
>>789
お前が引用したこと。
関係ないなら引用しなければ良かっただけ。
-
- 792
- 2014/02/23(日) 00:34:18.07
-
>>790
じゃあ現在使われている
ハーバードアーキテクチャを使った
ものを言ってみて。
-
- 793
- 2014/02/23(日) 00:40:16.53
-
>>792
http://en.wikipedia.org/wiki/Harvard_architecture#Modern_uses_of_the_Harvard_architecture
-
- 794
- 2014/02/23(日) 01:53:28.66
-
それwikipediaじゃんw
知らないから調べましたってか?w
-
- 795
- 2014/02/23(日) 04:59:50.86
-
>>792
Wikiも確認しないで言ってんだ?
「じゃあ現在使われている
ハーバードアーキテクチャを使った
ものを言ってみて(キリッ」
笑w
-
- 796
- 2014/02/23(日) 05:05:00.25
-
wikipediaをwikiって略す人は無知を晒してるようなものなので恥ずかしくないのならwikiと言い続けたらいい
-
- 797
- 2014/02/23(日) 05:09:20.15
-
「wikipediaをwikiって略す人は無知を晒してるようなもの」と言って満足してる人は本質が見えない人。
-
- 798
- 2014/02/23(日) 05:11:24.69
-
>>796
>wikipediaをwikiって略す人
って誰のこと? 世の中に存在する wiki ってwikipedia だけだとでも思ってるのかな??
-
- 799
- 2014/02/23(日) 05:14:02.39
-
>>795
いいから、お前がなんのコンピュータの話を
していたのか書けよw
こっちはZ80やx86などのありふれたフォン・ノイマン型コンピュータの
話をしている。お前は違うんだろう?
当然そのコンピュータの話を続けられるんだろうな?
まあ無理だろう。
ということで当時はコードとデータは分離されていないのが一般的。
>>763
> Z80で64kbite BASIC-ROM、64kbite RAM、64kbite VRAMなパソコンだと
> コードとデータの分離や切り替えが効かないとはじまらんだろ
ということで当時はコードとデータは分離されていないのが一般的。
-
- 800
- 2014/02/23(日) 05:14:55.03
-
> 792 :デフォルトの名無しさん:2014/02/23(日) 00:34:18.07
> >>790
> じゃあ現在使われている
> ハーバードアーキテクチャを使った
> ものを言ってみて。
↑に対して6分で返された返答が↓
> 793 :デフォルトの名無しさん:2014/02/23(日) 00:40:16.53
> >>792
> http://en.wikipedia.org/wiki/Harvard_architecture#Modern_uses_of_the_Harvard_architecture
1時間悩んだ返答が↓w
> 794 :デフォルトの名無しさん:2014/02/23(日) 01:53:28.66
> それwikipediaじゃんw
> 知らないから調べましたってか?w
-
- 801
- 2014/02/23(日) 05:16:05.66
-
※ レスを返すまでの時間が短い=必死でリロード
レスを返すまでの時間が長い=他にやることがあって見てない。
-
- 802
- 2014/02/23(日) 05:20:42.99
-
>>799
> いいから、お前がなんの
> 現在使われている
> ハーバードアーキテクチャを使った
> コンピュータの話を
> していたのか書けよw
聞かれるまでもない話だし、具体例なら沢山ありますよ。 >Wikipedia
> こっちはZ80やx86などのありふれたフォン・ノイマン型コンピュータの
> 話をしている。お前は違うんだろう?
お前は狭い範囲の話をしてるつもりなのね、了解。
> ということで当時はコードとデータは分離されていないのが一般的。
お前の狭い範囲での知識ではそういうことですね、了解、了解。
>> Z80で64kbite BASIC-ROM、64kbite RAM、64kbite VRAMなパソコンだと
>> コードとデータの分離や切り替えが効かないとはじまらんだろ
>
>ということで当時はコードとデータは分離されていないのが一般的。
SMC-70やX1では分離してたけど?
-
- 803
- 2014/02/23(日) 05:22:45.21
-
> 800 :デフォルトの名無しさん:2014/02/23(日) 05:14:55.03
> 801 :デフォルトの名無しさん:2014/02/23(日) 05:16:05.66
> ※ レスを返すまでの時間が短い=必死でリロード
> レスを返すまでの時間が長い=他にやることがあって見てない。
ああ、成る程。
-
- 804
- 2014/02/23(日) 05:30:50.34
-
知識自慢爺、引っ込みがつかなくなって徹夜かw
-
- 805
- 2014/02/23(日) 05:33:24.62
-
>>802
> SMC-70やX1では分離してたけど?
分離されてないよ。
だいたい、ハーバードアーキテクチャじゃないじゃんw
-
- 806
- 2014/02/23(日) 05:35:30.23
-
http://weblearningplaza.jst.go.jp/taikei/620/faq/naiyou.html#q1-01
Q1-1
フォン・ノイマン方式とはどのようなものですか?
A1-1
フォン・ノイマンが発表した論文に基づいたストアードプログラム方式のコンピュータアーキテクチャを、
便宜上フォン・ノイマン方式と呼びます。今日のコンピュータには画像処理などの特別な場合を除いて
フォン・ノイマン方式が採用されています。一般的に以下に当てはまるものがフォン・ノイマン方式だとされています。
(1)プログラム内蔵方式であること
命令とデータを同一の主記憶装置内に置く。
(2)線形主記憶装置を持つこと
主記憶装置のアドレスを指定して、その場所に情報を読み出し、書き込む。
(3)命令は逐次実行方式であること
プログラムカウンタに指定される主記憶装置上のアドレスにある命令を読み出して実行し、
終了後にプログラムカウンタに命令語長分を加え次のアドレスの命令を読み出す。
(4)低機能命令を持つこと
加減算などの演算命令や、ロードストア命令などの簡単な動作を行う命令を持つ。
(5)プログラムの流れを変更できること
命令の一部により作られた主記憶装置のアドレスをプログラムカウンタにセットする分岐命令を持ち、プログラムの流れを変更できる。
(6)入出力装置の制御を行うこと
入出力装置を制御して情報を送受できる。
-
- 807
- 2014/02/23(日) 05:36:24.03
-
>>805
分離されてるよ。つか、
> だいたい、ハーバードアーキテクチャじゃないじゃんw
データとコードの分離がハーバードアーキテクチャの条件じゃないけど?
-
- 808
- 2014/02/23(日) 05:37:19.26
-
>>804
知識ない奴は関係ないところで揚げ足取ろうと必死だなww
-
- 809
- 2014/02/23(日) 05:37:22.85
-
>>807
じゃあなんでハーバードアーキテクチャの話したの?w
このページを共有する