只是好奇,如果打開一個十六進制編輯器並手動鍵入操作碼並保存它。如移動1到註冊1移動2到註冊2然後調用add,會給我工作程序嗎?或者做一些如何自動化這讓我蹩腳的編譯器?將操作碼打印到文件
編輯:忘記操作系統,我有Mac OS X和Linux在我的處置,x86作爲CPU。
只是好奇,如果打開一個十六進制編輯器並手動鍵入操作碼並保存它。如移動1到註冊1移動2到註冊2然後調用add,會給我工作程序嗎?或者做一些如何自動化這讓我蹩腳的編譯器?將操作碼打印到文件
編輯:忘記操作系統,我有Mac OS X和Linux在我的處置,x86作爲CPU。
正如我在評論中指出的那樣,操作系統/平臺在這裏很重要。大多數平臺都期望某種結構可執行(如果只有一個頭文件等)。例如參見舊版本的Unix所使用的the a.out format。
正如您已經指出您擁有Mac OS X,請查看Mach-O format。
小心打字'A0 A1'...
等不同於將實際字節(本例中爲160/161)放在文件中。
我正在考慮編寫一個腳本來完成寫作或者使用十六進制編輯器來完成。但它需要結構化嗎?還是會繼續工作? – 2009-12-03 20:17:59
操作系統會期望某種格式 – 2009-12-03 20:33:03
只要你有正確的二進制文件格式,那麼是的。
舊的DOS .com文件就是這樣 - 原始程序序列化到磁盤。 .exe文件和unix ELF文件對它們具有結構化格式,其中包括(除其他外)重定位信息。
僅當該文件是格式正確的可執行二進制文件時。例如,請參閱關於COFF和ELF格式的參考。
如果您對某個特定的可執行文件的外觀感興趣,您也可以使用od
轉儲小型可執行文件的內容。
一個平臺/操作系統在這裏很有用 – 2009-12-03 20:08:20