2016-08-19 211 views
2

我想了解一下電腦最初的工作方式。我最初用ENIAC等計算機知道,他們實際上必須按照正確的順序插入電線,以使其程序執行。他們後來使用打卡,最後提出彙編語言。它只是從那裏用FORTRAN,COBOL等向上建立。有沒有什麼辦法可以在我的電腦上編譯0和1。如果我打開textedit,然後鍵入一個零和一個特定的序列,那麼我怎樣才能使這個二進制文件而不是一個ASCII字符序列的文本?我願意接受任何方法。 (免責聲明:我知道在二進制中做事需要永遠,我只是想學習如何非常基本的東西。)編譯二進制文件

+0

這可能是對你有意思:https://en.wikipedia.org/wiki/Executable –

+0

是的!有很多有趣的方法來做到這一點。但編碼二進制可能會殺了你的臉,讓你放棄。我個人建議編寫一些彙編代碼。 這是一個很好的ASM教程。這裏有一個與學習裝配有關的問題(更多資源!) – DrSatan1

回答

3

要做到這一點,最簡單的方法是從您選擇的彙編器開始,如果您願意,可以在IDE中啓動。使用某種調試器(如IDE),以便您可以看到代碼的效果,而無需寫入控制檯或文件。

與其僅寫入二進制文本數字,不如使用數據元素而不是指令編寫完整的彙編源代碼。

所以,與其

.code 
main proc 
    mov eax,5    
    add eax,6    
main endp 
end main 

你可以寫:

main proc 
    db 10111000b, 00000101b, 00000000b, 00000000b, 00000000b 
    db 10000011b, 11000000b, 00000110b 
main endp 
end main 

db方式定義字節和b後綴意味着二進制文件。

而且,有了這個,你會被設置爲作弊,但我不會告訴你,直到你問,所以我不會破壞你的樂趣。

這裏是一個很好tutorial在Windows入門MASM和Visual Studio 2015年

+0

這也是一個很好的答案,但當時它打破了我的想法。 – chevydog

1

創建二進制數據流的方式很大程度上取決於其目的。

二進制數據本身並沒有太大的魔力。您可以使用任何十六進制編輯器並開始輸入所需的二進制輸入。

但是,這不是現在如何編程計算機。如果您真的想進入最低級別,您可以看看彙編編程,它基本上允許您以更方便的方式告訴機器應該執行的確切指令。

但即使在這裏,你也不會有太多樂趣。如果你希望能夠實際執行你的程序並在你的顯示器上看到一些結果,或者甚至是鍵盤輸入等,那麼代碼會變得非常大,很難爲人類編寫和理解。

這就是我們使用編譯器的原因。編譯器使用高級語言生成這樣的代碼,並且不需要一遍又一遍地寫入最小的指令塊。

如果你真的只是想了解計算機的工作原理,請下載一個簡單的CPU模擬器(可能有一個很好的圖形用戶界面) ,並與它一起玩。 Edumips是用於教育目的的那些模擬器之一。

相關問題