タグ

asmに関するsh19910711のブックマーク (10)

  • アセンブリ言語でフィボナッチ数 - sileのブログ

    前回は、C++で単純なVMを書いて、その上でのフィボナッチ数の計算時間を測定した。 そのVM部分をネイティブコードに置き換えたら、どの程度処理速度が改善するのかを測ってみたかったので、その前にまずネイティブコード(x86)の勉強も兼ねて、common lispでアセンブラを書くことにした。 現状はまだまだ未完成で、以下のような制限があるが、一応フィボナッチ数が計算できるくらいまでには出来たので、その計算時間を参考までに残しておく。 制限: 使用可能な命令は mov/ret/push/pop/add/sub/inc/dec/cmp/jmp/jcc/call のみ 64bitのみ対応 エラーチェックとか不十分 SBCLのみで動作 github: cl-asm-0.0.1 コード フィボナッチ数計算用のコード。 (use-package :sb-alien) ;; Fibonacci用のアセンブ

    アセンブリ言語でフィボナッチ数 - sileのブログ
  • An ASM Monad

    Two weeks ago, I briefly introduced a way of representing Assembly Language in Haskell code, in order to illustrate the programming paradigm to which it belongs. In a move that is sure to scare off both high-level and low-level programmers, I shall now explain how a Monad implementing 6502 Assembly can be created. In real code, this would use more abstract or efficient types, but in this article I

  • TALK project

  • x86 Linux シェルコード作成 - k0u5uk3’s blog

    2015-07-21 x86 Linux シェルコード作成 pwn シェルコードとは ソフトウェアの脆弱性攻撃のペイロードであり、バイトコードで記述されます。そのため、CPUやOSのバージョンといったプラットフォーム毎に作成されます。 シェルコードという名称は一般的にシェルを起動することが攻撃者にとって楽にマシン全体の制御を奪う方法であり多用されているからですが、実際のところシェルコードはどのような処理も記述することができます。 x86 Linux シェルコード作成の前提知識 アセンブリ言語 シェルコードのバイトコードは、マシン語命令のアーキテクチャによって異なるため、アセンブリ言語で記述することになります。 Linuxシステムコール OSはカーネル内で入力、出力、プロセス制御、ファイルアセクス、ネットワーク通信と行ったタスクを管理します。 C言語のプログラムは最終的に、こういったタスクを

    x86 Linux シェルコード作成 - k0u5uk3’s blog
  • How to optimize for the Pentium family of the microprocessors

    How to optimize for the Pentium family of the microprocessors (In Japanese)Original (in English): http://www.agner.org/assem/ Copyright (c) 1996, 2000 by Agner Fog. Last modified 2000-03-31. Translation into Japanese by Nobuhisa Fujinami and Takashi Itoh. Last modified 2000-05-30. このページは、Agner Fogさんによる同名のマニュアルの、藤波順久及び伊東尚志による日語訳です。原文(英語)の著作権はAgner Fogさんにあります。また、日語訳中の「私」とは、Agner Fogさんのことです。原文はhttp

  • インラインアセンブラで学ぶアセンブリ言語 第3回

    はじめに これまで、『インラインアセンブラで学ぶアセンブリ言語』の第1回と第2回を通じて、Microsoft Visual C++のインラインアセンブラを用い、アセンブリ言語の基について説明してきました。 第3回となる稿では、インラインアセンブラを用いた流れ制御を解説します。アセンブリ言語は高水準言語における文の概念がなく、すべての命令が単純なオペコードと引数(オペランド)だけで構成されています。この純粋な構造のために、流れ制御を行う場合も、if文やfor文のように記述することはできません。基的にプログラムの流れ制御はすべてC言語で言うところのgoto文だけで記述し、比較命令や条件ジャンプも個別の命令で行います。 来のマクロ機能を持たない生のアセンブリ言語ならば、ジャンプ先のプログラムの位置すらも、すべてメモリアドレスで指定しなければなりません。実際に、機械語にアセンブルされた後は

    インラインアセンブラで学ぶアセンブリ言語 第3回
  • プログラミングノート - x86

    movl 3(%esi,%ebx,2), %eax 整数演算 ロード/ストア mov eax, [4] mov eax, [ebx] mov eax, [ebx+4] mov eax, [ecx*2+4] mov eax, [ebx+ecx] mov eax, [ebx+ecx+4] mov eax, [ebx+ecx*2] mov eax, [ebx+ecx*2+4] mov eax, [rip+4] レジスタ (eax, ebx, ecx の部分) は汎用レジスタどれでも指定できる。 シフト (*2 の部分) は 2, 4, 8 のいずれか。 オフセット (+4 の部分) は符号付き 8 ビットまたは 32 ビット。 64 ビットでは rip 相対アドレッシングが可能。 ただし単純にオフセット (符号付き 32 ビット) を加算する形式のみ。 32 ビットでは eip 相対は不可。 c

  • 8086アセンブラ資料室

    8086アセンブラ資料室 このページについて このページは、PC-9801上のMS-DOSで動作するマクロアセンブラ(MASM)の文法に基づいて書いています。他のアセンブリ言語とは文法の違いがある可能性があります。 このページは過去に8086アセンブラで作られたプログラムの解析や新システムへの移行のための資料として掲載していますが、ここに書いてあることを100%信用したりはせず、少しでもおかしいと思ったものは、各自で他の資料をあたるなり、検証するなりしながら、あくまでもヒントとしてご利用ください。 皆様のご理解とご協力をお願いします。 「アセンブラ」と「コンパイラ」 アセンブラ言語とコンパイラ言語は、一見同じようなものに見えます。実際に、『プログラムを作る』という目的は同じです。しかし、中身はまったく違います。コンパイラは、その文法を解釈し機械語コードを生成するのに対し、アセンブラは単

  • WLA DX - Yet Another GB-Z80/Z80/Z80N/6502/65C02/65CE02/65816/68000/6800/6801/6809/8008/8080/HuC6280/SPC-700/SuperFX Multi Platform Cross Assembler Package

    WLA DX - Yet Another GB-Z80/Z80/Z80N/6502/65C02/65CE02/65816/68000/6800/6801/6809/8008/8080/HUC6280/SPC-700/SuperFX Multi Platform Cross Assembler Package Originally written by Ville Helin in 1998-2008 Features: Fast SNES support SMS/GG support Gameboy support Megadrive support PC-Engine support Support for object and library files You can patch ROM images with code Multilevel macros (actually, fu

  • Technical Assembler

    このページでは、アセンブリ言語及び、インライン・アセンブラによる他の言語との連携等の技術的情報交換、質疑応答を行う事を目的として作成されています。 このページへのリンクはフリーです。 リンクをしていただいた方は事後でもかまいませんのでメールなどいただけると幸いです。 ご希望があればこちらからもリンクさせていただきたいと思います。 ・ How to Assembler Assembler とはなんぞや? ・ Assembler Sample source サンプルソースです。 ・ Mnemonic reference ニーモニックのリファレンスです。 ・ Assembler Message board Assembler 関連の話題をどうぞ。 ・ Assembler Chat room Assembler のチャットです。 ・ Assembler FAQs Assembler 関連の FAQ

  • 1