タグ付けされた質問 「assembly」

アセンブリ言語は、コンピューター、マイクロコントローラー、またはその他のプログラム可能なデバイス用の低レベルのプログラミング言語であり、各ステートメントは単一のマシンコード命令に対応しています。


7
プログラマは、高レベル言語での低レベルソフトウェア開発にどのように対処しますか?
私はプログラミングにやや慣れていないので、この質問に答える最良の方法は例です。 JavaとC#で基本的なことを行う方法を知っています。小さなウィンドウのようなものは、アプリケーションを形成するか、汎用クラスを作成します。私は基本的に学習してきましたが、まだ大きなことをしようとはしていません。とにかく、「フードの下で」物事がどのように行われるかについて、私はいつも興味がありました。 私はそれがすべて1と0に煮詰められ、アセンブリ言語が基本的に1と0のパターンにコマンドを与えることを知っていますが、そこからこのジャンプがあるようです:これにライブラリを使用してください ライブラリを使用せずにすべてのC#でできることは、算術およびバイナリロジックです。入力または出力を取得するには、ライブラリなどを使用します... おそらくこの質問は一部の人には自明であり、学ぶべきことがたくさんあることは知っていますが、このような質問からどこから始めればよいかさえわかりません。ありがとうございました。 だから私の質問はこれです: 誰かが仮想マシンやプレイステーションエミュレーター、オペレーティングシステム、ドライバーを作成したり、メディアプレーヤーにmp3サポートを追加したり、独自のファイルタイプを作成したりした場合... C#またはJavaでどのように行われるかわかりません。 言い換えると、WROXのProfessional C#やOReillyのC#のプログラミングのような本を読んだ場合、これらの方法を知っていますか?それとも、アセンブリ言語や、C ++のようなより低レベルのものを学ぶ必要がありますか?

6
アセンブリはまだ関連していますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 プロジェクトのコーディングや管理に関して、アセンブリ言語と高レベル言語の間に大きな違いはありますか?明らかに、他のほとんどの言語よりも特定の操作を実行するためにアセンブリ言語でより多くのステートメントが必要ですが、ターゲットアセンブリ言語(特にx86 / x64アセンブリ言語)に基づいてプロジェクトを実行する必要がある(またはする必要がある)方法に影響する違いがあります? アセンブリ言語と他の言語との違いがある限り、これらの言語の少なくとも一部が他の言語の利点であると推測することは理にかなっています。アセンブリ言語の特定の欠点と、それらの欠点を軽減する方法を誰かが指摘できますか? 具体的な例の1つは、スタッフの空室状況です。経験豊富なアセンブリ言語プログラマを見つけるのに苦労した人はいますか?もしそうなら、この問題を軽減するためにどのような手順を踏むことができますか?
18 assembly  kernel 

5
独自のカーネルの構築に関する野心的な学生へのアドバイス[非公開]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 私は非常に野心的な大学生で、コンピューターについて知っておくべきことをほとんどすべて学びたいと思っています(必要に応じて、私は学習が大好きです)。最近、私は自分のカーネルを設計して構築するのは楽しいプロジェクトになるだろうと考えました(長いプロジェクトですが)。 基本的な情報を入手しましたが、実際に機能させるにはAssemblyとC / C ++をマスターする必要があることを知りました。私はそれらに取り組んでいますが、プログラミングの観点からカーネルが実際にどのように機能するかを学びたいです。私はLinuxカーネルのコードを閲覧するのに何時間も費やしましたが、それだけであなたを連れて行くことができます。 カーネルを構築する基本的な手順は何ですか?対処する必要があるもの 注文するのですか?私は多くのことを噛んでいることを知っていますが、私はそれを処理するのに十分決心しています。
18 c  assembly  kernel 

6
最初に来たのは、コンパイラーですか、それともソースですか?
コンパイラの誕生に興味があります。プログラミングはどのように始まりましたか?ある特定のコマンドセットを認識するハードウェアを最初に構築したのですか、それとも言語を定義してからその周辺のハードウェアを構築したのですか?また、関連するメモでは、最初のプログラミング言語は何でしたか?

4
アセンブリからマシンコードへの移行方法(コード生成)
コードを機械コードにアセンブルするステップを視覚化する簡単な方法はありますか? たとえば、メモ帳でバイナリファイルを開くと、マシンコードのテキスト形式の表現が表示されます。私はあなたが見る各バイト(シンボル)がそのバイナリ値に対応するASCII文字であると仮定しますか? しかし、アセンブリからバイナリにどのように移行するのでしょうか。舞台裏で何が起こっているのでしょうか??

8
リバースエンジニアリング:それは本当に何のためですか?[閉まっている]
ここで何が求められているかを伝えるのは難しいです。この質問は曖昧、曖昧、不完全、過度に広範、または修辞的であり、現在の形式では合理的に答えることができません。この質問を明確にして、再開できるようにするには、ヘルプセンターに アクセスしてください。 7年前に閉鎖されました。 私はいくつかの無邪気な/初心者の質問があります: リバースエンジニアリングの利点は何ですか? プログラマーとして、リバースエンジニアリングの技術を学ぶ必要がありますか? 経験豊富なプログラマーにとってのメリットは何ですか?

7
アセンブリーよりもCを使用することの利点/欠点は何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 現在、電気通信および電子工学の工学を勉強しており、マイクロプロセッサプログラミングでアセンブラからCに移行しました。これが良い考えだとは思わない。アセンブリと比較したCの長所と短所は何ですか? 私が見る利点/欠点は次のとおりです。 利点: C構文は、アセンブラー構文よりもはるかに簡単に学ぶことができます。 Cはより複雑なプログラムを作成するのに使いやすいです。 Cを学習することは、アセンブラーを学習することよりも生産性が高いため、アセンブラーよりもCの周辺に開発物が多くあります。 短所: アセンブラはCよりも低レベルのプログラミング言語であるため、ハードウェアへの直接プログラミングに適しています。 メモリ、割り込み、マイクロレジスタなどを操作することを示唆しているはるかに柔軟です。
15 c  low-level  assembly 

8
CVのプログラミング言語として「アセンブリ」を含めるべきですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 1つの質問の答えで誰かがそれを書いたassembly is not a language, it's a process。アセンブリの「言語」は実行するアーキテクチャに依存しているため、同意する傾向があります。これは、CPUごとにかなり異なる場合があります。 あるアーキテクチャ用にアセンブリを記述した場合、それは単にassembly他のプログラミング言語と一緒にCVに組み込むことができるということですか?または、その特定のアーキテクチャ用のアセンブリを記述したと明示的に言っていますか? 編集:「ダブリング」を「書き込み」に変更しました。英語は私の母国語ではありません。私はこの用語を誤解しました。それはあなたがほんの少しではなく多く使用したことを意味すると考えていました。

7
x86アセンブリでのNOP命令とalignステートメントの目的
アセンブリクラスを最後に受講してから1年ほど経ちました。そのクラスでは、IrvineライブラリでMASMを使用して、プログラミングを簡単にしました。 ほとんどの指示を終えた後、彼はNOP指示は基本的に何もせず、それを使うことを心配しないと言った。とにかく、それは中間期であり、適切に実行されないサンプルコードがあるため、NOP命令を追加するよう指示され、正常に機能しました。私は授業の後で、なぜそれが実際に何をしたのかと尋ねました。 誰か知ってる?
15 assembly  x86 

2
「本物のプログラマはアセンブリ言語を任意の言語で書くことができる」というのは本当ですか?
本物のプログラマは、任意の言語でアセンブリコードを作成できます。 (ラリーウォール)。 私の知る限り、ラリー・ウォール氏は、実際のプログラマーにとって、どの言語もASMと同じ機能を持つことができると言っています。しかし、私は真剣に理解していません。Perl、Python、Java、C#などの高水準言語でアセンブリコードを作成するにはどうすればよいですか?PerlやPythonなどの言語にはポインターさえありません。または彼は何か他のものを意味していますか?ウォール氏は実際に何を言おうとしているのですか?

7
バイナリ/ 16進数からアセンブリ命令セットにどのように移行しますか?
だから私は最近ここで少しの間組み込み/アセンブリのプログラミングを学ぼうとしていますし、最低レベル(ゲートなど)を学ぼうとしています。 しかし、私を困惑させるのは、命令セットを「取得」する方法です。ゲート/ TTLなどがどのように機能するかはある程度理解していますが、そこからmov、add、clrなどにどのように到達するのかわかりませんか? それはおそらくばかげた質問でしょう。...しかし、私は最初のマイクロプロセッサ/コントローラに戻って考え、そして....彼らが命令セットをどのように正確に設計し、それを機能させたのでしょうか? 編集:私はクラリティのために、最初のマイクロプロセッサについて話しているふりをしていると思います、彼らはどのようにバイナリから実際に命令セットを作成するのですか?

9
C ++でのIBMアセンブラー+ COBOLの書き換え
私は1972年に書かれたレンタルシステムで実行されているレンタカー会社のレンタルエージェント/マネージャーとして働いています。ちょっとした背景として、このプログラムから毎日対処しなければならない狂気の短い例を以下に示します。 レンタルエージェントは、1つの画面での印刷がACTフィールドで「MXC」を使用することを覚えておく必要があります(すべてが短いコードに基づいています)。これは「MaXimum display on a Contract」を意味し、別の画面ではPR(PRint) ACTIONフィールドですが、いくつかの画面はPT(PrinTの場合)フィールドでYを使用し、さらに別の画面はPRT(PRinTの場合)フィールドでYを使用しますが、さらに別の画面ではユーザーがEnterキーを押す必要があります(ただし、文字、それは改行文字であるため、数字パッドで入力する必要があります)、F8、異なるが関連する画面には単にF8が必要です、一部の画面にはPRinT用のフィールドがありますが、実際にはフィールド何もせず、いくつかのプロンプトを通過した後、印刷が自動的に行われ、さらに多くの画面にPRINT Y / Nというラベルのフィールドがあります。これは、別の場所が既に書類を提出している業務ではデフォルトでYになり、別のディーラーが書類を必要とする業務ではNになります。 私はこれよりも良い仕事をすることができると決めたので、これを更新する決定を下す会社の人に連絡することにしました。最終的に、このプログラムを担当するITのVPに連絡します。私は彼から少し情報を入手し、私のレンタカー会社がIBMメインフレームアセンブラーで書かれたCOBOLを少し混ぜたレンタルプログラムを持っていることを知りました。とにかく彼に私の履歴書をメールしてください(何かが開いた場合)。 これは私の質問につながります。 最初は技術的です。将来、保守性を向上させるという考えで、アセンブリ言語よりも高いレベルの言語で書き直すことを考えています。私の経験分野はC ++なので、それは私にとって明らかな選択です。私は最近、私が話した人がチームが一生懸命働いたと言われているという記事を読んだので、プログラムを更新する簡単な方法を切に必要としています。 -桁のロケーションコード(4ではなく)と8桁の車番号(7ではなく)。更新に関する私の哲学は、このような悲惨な状況であっても、Joelの方針に沿っています:http : //www.joelonsoftware.com/articles/fog0000000069.html要するに、再書き込みは以前のすべてを捨てるのではなく、増分する必要があります新鮮に始めます。 IBMアセンブリをC ++と統合する簡単な方法はありますか?ある場合、どうすればよいですか?私はasmキーワードを漠然と認識していますが、それを使用するのが最適なのか、それとも何か他のことをするのが最適なのかわかりません。そのような計画はお勧めしませんか?私はg ++とGNU makeを使用してLinuxでほとんどの作業を行っているので、それに固有の回答は歓迎されますが、絶対に必要ではありません(どのようなビルドシステムがないのかわからないので、ほとんど何もありません)。 2番目の質問はより政治的です。切り替えを行う必要があることをこの会社に説得するにはどうすればよいですか?理論上のコスト削減は莫大です(私の見積もりによれば、会社はプログラムとやり取りする方法を学ぶためのトレーニングコストの増加だけで年間余分に数百万ドルを無駄にしています)が、私の提案された変更はおそらくすべての現在のプログラマーは、仮に彼らが制定されたとしても仕事を終えているので、変化に対する大きな構造的抵抗があります。 編集:会社が既に持っているものを変更する理由が、私にとって最良の解決策のように思える理由を説明しなければなりません。ただし、これはプログラムの怪物であるため、他の提案を受け入れています。プログラミングの仕事をしたことがないので、間違った分析を修正してください。 まず、既製のソリューションがあります。 この種のことについてのいくつかの中間レベルのマネージャーとの私の話から、新しいシステムに切り替えることの主な懸念の1つは、何十年も会社にいて、今までシステムに慣れている忠実な従業員の大多数です。持っているものを変更できる場合は、現在のインターフェイスを一種の「互換モード」に維持できます。ユーザーは既に現在のシステムを使用するためにログインする必要があるため、ユーザーが(この変更を行った後)初めてログインするときに設定をアクティブ化する機能を追加できます。 「クラシック」インターフェースまたは「新しい」インターフェース。それを可能にする既成のソリューションを見つける方法はありません。 私の会社も私たちが使用するソフトウェアを所有しています。私たちはそれをライセンスしません。これは、私が現在話している経営陣は、実際に私に変更を許可することができる人と同じであることを意味します。サードパーティのソリューションでは、使用する製品を開発した会社から必要な権利を確保することに加えて、会社から承認を得なければならないため、ハードルが追加されます。また、これは会社に「彼らの」製品をあきらめて他の製品を使用するよう説得することを必要とします。これは、私たちが持っているものを更新しようとするよりも大きなハードルのようです。 最後に、将来を見据えて、ユーザーインターフェイスを改善し、いくつかのバグを修正したいだけではありません。これらの「緊急」問題を更新した後、テクノロジーに関連する会社の基本的な方法を更新したいと考えていました。この種の問題に1〜2年費やした後、私の計画は経営陣に戻り、より劇的な変化を提案することでした。会社が運営している多くの方法がありますが、それらは現在使用していない技術によって根本的に改善される可能性があります。たとえば、各リージョンはほぼ同じように動作します。地元の主要空港は、自動車を配送する中心的なハブです。これらは主に必要に応じて送信されます。ただし、空港はすべての操作のホームベースとして使用されます。彼らは1台の車で2人を私の場所に送り、必要のない1台の車を私たちから受け取ります。その後、彼らが入った車と、彼らが取り戻しているもの(空港から32マイル)を持って空港に戻ります。その後、2台の車で5マイル離れた場所に到着し、1台を降ろしてから、もう1台の車で空港に戻ります。たとえ私たちが送り返した車が私たちの近くで必要な同じ種類の車であっても、彼らはこれを行います。私は約2年前から会社に勤めていますが、自動車不足の最も極端な緊急事態(これまで約3回)で、彼らがこれから逸脱しているように見えます。すべての地域で働く4人を、どの車がどこに行くかを決定する自動スケジューリングシステムに置き換え、必要な場所にすべての車を届けるために最短時間+マイル+ドライバーを必要とする経路を見つけようとしますより高いレベルの修正の例は、いつか追加したいと思っています。 ただし、これらすべてを提案することに不安を感じる前に、インターフェイスの更新などの小さなタスクを実行することで、会社とコードベースの足掛かりをつかむことが役立つと思います。アウトソーシングなどのソリューションは、この可能性を排除します。

6
「Cでアセンブラーを記述します。」なぜ低レベル言語の機械語翻訳機を高レベル言語で書くのですか?
私のマイクロプロセッサクラスのインストラクターが私たちに課題を与えて言った: 「Cでアセンブラーを作成します。」-私の最愛の教授 だから、私には少し非論理的に思えた。 私が間違っていなければ、アセンブリ言語は、機械語コードから高レベル言語の旅への最初のステップです。つまり、Cはアセンブリよりも高レベルの言語です。では、Cでアセンブラーを書く意味は何ですか?C言語がないのに、彼らは過去何をしていたのですか?彼らはマシンコードでアセンブラーを書いていましたか? 低レベル言語用の機械語翻訳を高レベル言語で書くのは意味がありません。 たとえば、そのアーキテクチャ用のCコンパイラさえない、まったく新しいマイクロプロセッサアーキテクチャを作成したとします。Cで記述されたアセンブラは、新しいアーキテクチャをシミュレートできますか?私はそれが役に立たないかどうかを意味しますか? ところで、GNU AssemblerとNetwide AssemblerはCで書かれていることを知っています。また、なぜそれらがCで書かれているのだろうかと思っています。 最後に、これは私たちの教授が私たちに与えた単純なアセンブラのソースコードの例です。 // to compile, gcc assembler.c -o assembler // No error check is provided. // Variable names cannot start with 0-9. // hexadecimals are twos complement. // first address of the code section is zero, data section follows the code section. …

2
OOPの「オブジェクト」と「クラス」は、アセンブリ言語の観点からメモリ内でどのように編成されていますか?
オブジェクトはメモリ内でどのように編成されますか? たとえば、関数はメモリ内のコードの一部であり、スタックやレジスタを介してパラメータを期待し、独自のスタックフレームを処理することを知っています。 しかし、オブジェクトははるかに複雑な構造です。彼らはどのように編成されていますか?各オブジェクトにはメソッドへの「リンク」があり、アドレスを自分自身にそのメソッドに渡しますか? このトピックの良い説明を見るのは素晴らしいことです。 UPD。私は質問をより正確にし、主に静的型付け言語に興味があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.