數據是組合語言寫成的,當然,想要瞭解他,就必須學習他。
以下是我覺得內容非常豐富的教學站:
http://home.educities.edu.tw/wanker742126/index.html
有新的,我會更新唷!
手上一份PPT晚點放上給大家。
新的一 ...
admin 發表於 2009-7-12 19:10
Order Number: 325383-045US January 2013
此規格的cpu,一條正常合理的指令最長不會超過17byte
Prefix(4)+Opcode(3)+ModR/M(1)+SIB(1)+Disp(4)+Imm(4)=17
以下雖然有些已過時了,但我覺得還是可以參考
//*************************************************************************
2013 Intel官網
Intel® 64 與 IA-32 架構軟體開發手冊
http://www.intel.com.tw/content/www/tw/zh/processors/architectures-software-developer-manuals.html
//*************************************************************************
2013 Intel官網檔案
Intel® 64 與 IA-32 架構軟體開發手冊 合併第 2A、2B 及 2C 冊: 指令集參考 A-Z
這份文件包含完整的「指令集參考」,從 A 到 Z,合為一冊。描述指令的格式,
並且提供各指令的參考頁面。透過功能性的跨冊目錄、參照及索引,很容易查找這份文件的「指令集參考」。
http://download.intel.com/products/processor/manual/325383.pdf
照這份可以自己編寫一個autoasm及disasm
要看對照表可以直接從p1115附錄開始看
//*************************************************************************
中文教學網站 - 小木偶的網頁
http://home.educities.edu.tw/wanker742126/
//*************************************************************************
中文教學網站 - 組合語言程式設計
http://masm1215.myweb.hinet.net/index.html
//*************************************************************************
查指令
80x86 Opcodes
http://courses.engr.illinois.edu/ece390/resources/opcodes.html
//*************************************************************************
查指令
© 1996-2013 by Christian Ludloff. All rights reserved. Use at your own risk.
The world's leading source for technical x86 processor information.
http://www.sandpile.org/
//*************************************************************************
查指令
Intel Pentium Instruction Set Reference (Basic Architecture Overview)
http://faydoc.tripod.com/cpu/index.htm
//*************************************************************************
版权所有 mik 2008 - 2011
x86/x64 指令编码内幕(适用于 AMD/Intel)
http://www.mouseos.com/x64/index.html
//*************************************************************************
我覺得了解怎麼計算一條指令的長度
這對指令構造有比較完整了解,又不會太複雜
x86 指令 Opcode 长度简单计算(转)
http://hi.baidu.com/anyclick/item/14c9271d775b32436826bb72
文中的(*func & 0x7E) == 0x62)打錯,應該是(*func & 0xE7) == 0x26)
if((*func & 0xF8) == 0xD8)
{
FPU = *func++;
break;
}
我覺得這段應該要放到while外
//*************************************************************************
在Visual C++中使用内联汇编
http://dev.gameres.com/Program/Other/inlineASM.htm
//*************************************************************************
舊的網頁版Intel cpu指令集手冊
Intel 80386 Reference Programmer's Manual Table of Contents
http://pdos.csail.mit.edu/6.828/2006/readings/i386/toc.htm
//*************************************************************************
手工汇编 8086/8088指令与机器码转换对照表
http://hi.baidu.com/cpuzer/item/597994f4fd76182b743c4ced
//*************************************************************************
80x86汇编小站
http://www.x86asm.com/
//*************************************************************************
看雪的
打造自己的反汇编引擎——Intel指令编码学习报告
這就自己google搜吧
//*************************************************************************
r ? val1 : val2
neg eax sbb eax, eax
http://www.cnblogs.com/awpatp/archive/2009/11/06/1597488.html
留言列表