タグ

x86に関するnezukuのブックマーク (7)

  • はじめてのDPMI

    「いまどき使う?」の感もありますが、WindowsXP上でDPMI(DOS Protected Mode Interfaceを使ったDOSプログラムを作成・アセンブル・実行してみます。DOS上で手軽に32ビットプロテクトモードのプログラムを実行できることがわかります。 (記事の初稿は2004年です。64ビットCPUが普及した現在でも有用な内容と思われるので、そのままの内容で公開します。) なお稿ではMS-DOS用のアセンブラーとリンカーが必要になります。ここではBorland社製のTurbo Assembler(TASM)とTurbo Link(TLINK)を使います。もしもこれらを持っていない場合は、フリーウェアのアセンブラー・リンカーを入手してください。 ■DPMIとは DPMI(DOS Protected Mode Interface)とは、16ビット(リアルモードもしくは仮想8

    はじめてのDPMI
  • 「はじめて読むPentium マシン語入門編」をVisual Studio 2017で学習する - ろば電子が詰まつてゐる

    最近はじめてCTF(Capture The Flag)にチャレンジしたので、アセンブラやバイナリに興味が湧いてきてしまいました。ということで、初心者向けとして非常に良書だと思っている、「はじめて読むPentium マシン語入門編」を再読していました。 はじめて読むPentium マシン語入門編 作者: 蒲地輝尚,水越康博出版社/メーカー: アスキー発売日: 2004/07/01メディア: 単行購入: 21人 クリック: 2,328回この商品を含むブログ (26件) を見るところがこのは2004年出版で、かなり昔のということもあって、学習環境がVisual C++ 2003を前提として書かれています。 ではこの学習環境を今は作れないのかというと……2017年現在は、無償で利用できるVisual Studio 2017 Community Editionがあります。これでほぼ同書内と同じ

    「はじめて読むPentium マシン語入門編」をVisual Studio 2017で学習する - ろば電子が詰まつてゐる
  • 【後藤弘茂のWeekly海外ニュース】 AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード

    【後藤弘茂のWeekly海外ニュース】 AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード
  • 技術/歴史/"WindowsOS内部のアーキテクチャのすべて"読書メモ/1-3章 - Glamenv-Septzen.net

    8080になり、"アドレスバス"がデータバスとは独立して登場し、16bit = 64KB までのメモリが扱えるようになった。 汎用レジスタは A, B, C, D, E, H, L, W, Z が導入されている。プログラムカウンタも16bitになっている。 なお8080のGND配線の設計ミスを修正した 8080Aという製品が発表されている。こちらの方がヒットしたため、"8080"と呼ぶ時に8080Aも含める場合もある。記事もそれに従う。8080Aを設計した技術者が、後に独立し、ザイログ社を設立して互換CPU "Z80" を発表している。 8080/Z80を搭載したマイコン製品とソフトウェア(BASIC, CP/M) Altair8800 1975年、MITSにより発表された8080を搭載したシンプルなマイコンキット。これに使われた"S-100"バスは8080系のミニコン・マイコンで標準装

  • Assembler/なぜx86ではMBRが"0x7C00"にロードされるのか?(完全版) - Glamenv-Septzen.net

    どの世代でも、当時のマシンに搭載されていた標準的な物理メモリを越えた場所を指している。 これは割り込みベクタの影響でアドレス0を使えない為と、最初の命令フェッチから始まる初期化プログラムをなるべくアドレスの高位に配置することで、一般的なプログラムの使えるアドレス空間を邪魔しないようにとの意図らしい。 BIOSが格納されたROMは、電子回路のレベルでこれら高位アドレスにマッピングされるよう調整されている。 IBM PC 5150 ではROM BIOSがFE000以降にロードされるようになっており、丁度 FFFF0H に、BIOSコードの先頭へJMPする機械語コードが配置されている。(後述) ※1 : 80286は24bitのアドレスバスを持つが、リアルモードでは20bitしか使われない。A20-A23はリセット後は1になっている。そのため、CSこそ"F000H"になっているが、もう4bit

    nezuku
    nezuku 2010/09/19
    初期のPC-DOSが32KB以上のRAMの構成を前提としていたのでそのうえでより空き領域を確保するため、32KB-MBR(512バイト)-データとスタック(512バイト)の31KB、0x7C00に配置と
  • x86仮想化技術のメモ - やや温め納豆

    カーネル/VM探検隊などに触発されたので、私もVM関連の情報をまとめていく。こうかと思ったが、ザーと書いているうちに飽きてきたので途中で終わってます(笑) ググればわかるような情報を書き出すのに時間を使うよりも、実際にソース読んでいったほうが面白いなって思ってしまったので。 目次 仮想化技術はどのように使われているか 仮想化技術を実装してみるには何をする必要があるか、その手法の概要 CPUの仮想化 メモリの仮想化  ←ここまでで終わり(笑) I/Oの仮想化 一応、以上について書き進めていたんだけど、正直「A Comparison of Software and Hardware Techniques for x86 Virtualization」を読めばかなりの情報が得られます。そんなわけでどうぞー。間違ってるところは、指摘してもらえるとうれしいです。 仮想化技術はどのように使われているか

    x86仮想化技術のメモ - やや温め納豆
  • GCC Inline Assembler

    "asm"と"__asm__"は、基的には同じであるが、"__asm__"は使用している言語の予約語/関数等とぶつかる場合使用します。またはANSI C互換のコードをつくっている場合、"asm"キーワードが使用できなくなるので"__asm__"を使います。 /* keyword asm と同じ関数*/ function asm(void){ } /* asmが使用できないので__asm__を使用 */ function inline(){ __asm__("asm code"); }

    nezuku
    nezuku 2007/10/31
    GCCのインラインアセンブラの使い方
  • 1