網(wǎng)友評(píng)分: 5分
RadASM是一款功能十分強(qiáng)大的匯編編輯器軟件,這款軟件能夠?yàn)橛脩?hù)提供win32位匯編可視化開(kāi)發(fā)環(huán)境,可支持多種類(lèi)型的編程格式,自帶資源編輯、調(diào)試器等功能,滿(mǎn)足用戶(hù)的多元化使用需求,提升用戶(hù)工作效率,喜歡的小伙伴快來(lái)下載體驗(yàn)吧。
【機(jī)器語(yǔ)言】
機(jī)器指令是CPU能直接識(shí)別并執(zhí)行的指令,它的表現(xiàn)形式是二進(jìn)制編碼。機(jī)器指令通常由操作碼和操作數(shù)兩部分組成,操作碼指出該指令所要完成的操作,即指令的功能,操作數(shù)指出參與運(yùn)算的對(duì)象,以及運(yùn)算結(jié)果所存放的位置等。
由于機(jī)器指令與CPU緊密相關(guān),所以,不同種類(lèi)的CPU所對(duì)應(yīng)的機(jī)器指令也就不同,而且它們的指令系統(tǒng)往往相差很大。但對(duì)同一系列的CPU來(lái)說(shuō),為了滿(mǎn)足各型號(hào)之間具有良好的兼容性,要做到:新一代CPU的指令系統(tǒng)必須包括先前同系列CPU的指令系統(tǒng)。只有這樣,先前開(kāi)發(fā)出來(lái)的各類(lèi)程序在新一代CPU上才能正常運(yùn)行。
機(jī)器語(yǔ)言是用來(lái)直接描述機(jī)器指令、使用機(jī)器指令的規(guī)則等。它是CPU能直接識(shí)別的唯一一種語(yǔ)言,也就是說(shuō),CPU能直接執(zhí)行用機(jī)器語(yǔ)言描述的程序。
用機(jī)器語(yǔ)言編寫(xiě)程序是早期經(jīng)過(guò)嚴(yán)格訓(xùn)練的專(zhuān)業(yè)技術(shù)人員的工作,普通的程序員一般難以勝任,而且用機(jī)器語(yǔ)言編寫(xiě)的程序不易讀、出錯(cuò)率高、難以維護(hù),也不能直觀地反映用計(jì)算機(jī)解決問(wèn)題的基本思路。
由于用機(jī)器語(yǔ)言編寫(xiě)程序有以上諸多的不便,現(xiàn)在幾乎沒(méi)有程序員這樣編寫(xiě)程序了。
【匯編語(yǔ)言】
雖然用機(jī)器語(yǔ)言編寫(xiě)程序有很高的要求和許多不便,但編寫(xiě)出來(lái)的程序執(zhí)行效率高,CPU嚴(yán)格按照程序員的要求去做,沒(méi)有多余的額外操作。所以,在保留“程序執(zhí)行效率高”的前提下,人們就開(kāi)始著手研究一種能大大改善程序可讀性的編程方法。
為了改善機(jī)器指令的可讀性,選用了一些能反映機(jī)器指令功能的單詞或詞組來(lái)代表該機(jī)器指令,而不再關(guān)心機(jī)器指令的具體二進(jìn)制編碼。與此同時(shí),也把CPU內(nèi)部的各種資源符號(hào)化,使用該符號(hào)名也等于引用了該具體的物理資源。
如此一來(lái),令人難懂的二進(jìn)制機(jī)器指令就可以用通俗易懂的、具有一定含義的符號(hào)指令來(lái)表示了,于是,匯編語(yǔ)言就有了雛型?,F(xiàn)在,我們稱(chēng)這些具有一定含義的符號(hào)為助憶符,用指令助憶符、符號(hào)地址等組成的符號(hào)指令稱(chēng)為匯編格式指令(或匯編指令)。
匯編語(yǔ)言是匯編指令集、偽指令集和使用它們規(guī)則的統(tǒng)稱(chēng)。偽指令是在程序設(shè)計(jì)時(shí)所需要的一些輔助性說(shuō)明指令,它不對(duì)應(yīng)具體的機(jī)器指令,有關(guān)內(nèi)容在以后的各章節(jié)中會(huì)有詳細(xì)敘述,在此不展開(kāi)介紹。
用匯編語(yǔ)言編寫(xiě)的程序稱(chēng)為匯編語(yǔ)言程序,或匯編語(yǔ)言源程序,在本教材中或特定的環(huán)境下,也可簡(jiǎn)稱(chēng)為源程序。匯編語(yǔ)言程序要比用機(jī)器指令編寫(xiě)的程序容易理解和維護(hù)。
【與機(jī)器相關(guān)性】
匯編語(yǔ)言指令是機(jī)器指令的一種符號(hào)表示,而不同類(lèi)型的CPU有不同的機(jī)器指令系統(tǒng),也就有不同的匯編語(yǔ)言,所以,匯編語(yǔ)言程序與機(jī)器有著密切的關(guān)系。
由于匯編語(yǔ)言程序與機(jī)器的相關(guān)性,所以,除了同系列、不同型號(hào)CPU之間的匯編語(yǔ)言程序有一定程度的可移植性之外,其它不同類(lèi)型(如:小型機(jī)和微機(jī)等)CPU之間的匯編語(yǔ)言程序是無(wú)法移植的,也就是說(shuō),匯編語(yǔ)言程序的通用性和可移植性要比高級(jí)語(yǔ)言程序低。
【執(zhí)行的高效率】
正因?yàn)閰R編語(yǔ)言有“與機(jī)器相關(guān)性”的特性,程序員用匯編語(yǔ)言編寫(xiě)程序時(shí),可充分發(fā)揮自己的聰明才智,對(duì)機(jī)器內(nèi)部的各種資源進(jìn)行合理的安排,讓它們始終處于最佳的使用狀態(tài),這樣做的最終效果就是:程序的執(zhí)行代碼短,執(zhí)行速度快。
現(xiàn)在,高級(jí)語(yǔ)言的編譯程序在進(jìn)行寄存器分配和目標(biāo)代碼生成時(shí),也都有一定程度的優(yōu)化(在后續(xù)課程《編譯原理》的有關(guān)章節(jié)會(huì)有詳細(xì)介紹),但由于所使用的“優(yōu)化策略”要適應(yīng)各種不同的情況,所以,這些優(yōu)化策略只能在宏觀上,不可能在微觀上、細(xì)節(jié)上進(jìn)行優(yōu)化。而用匯編語(yǔ)言編寫(xiě)程序幾乎是程序員直接在寫(xiě)執(zhí)行代碼,程序員可以在程序的每個(gè)具體細(xì)節(jié)上進(jìn)行優(yōu)化,這也是匯編語(yǔ)言程序執(zhí)行高效率的原因之一。
【編寫(xiě)程序的復(fù)雜性】
匯編語(yǔ)言是一種面向機(jī)器的語(yǔ)言,其匯編指令與機(jī)器指令基本上一一對(duì)應(yīng),所以,匯編指令也同機(jī)器指令一樣具有功能單一、具體的特點(diǎn)。要想完成某件工作(如計(jì)算:A+B+C等),就必須安排CPU的每步工作(如:先計(jì)算A+B,再把C加到前者的結(jié)果上)。另外,在編寫(xiě)匯編語(yǔ)言程序時(shí),還要考慮機(jī)器資源的限制、匯編指令的細(xì)節(jié)和限制等等。
由于匯編語(yǔ)言程序要安排運(yùn)算的每一個(gè)細(xì)節(jié),這就使得編寫(xiě)匯編語(yǔ)言程序比較繁瑣、復(fù)雜。一個(gè)簡(jiǎn)單的計(jì)算公式或計(jì)算方法,也要用一系列匯編指令一步一步來(lái)實(shí)現(xiàn)。
【調(diào)試的復(fù)雜性】
在通常情況下,調(diào)試匯編語(yǔ)言程序要比調(diào)試高級(jí)語(yǔ)言程序困難,其主要原因有四:
匯編語(yǔ)言指令涉及到機(jī)器資源的細(xì)節(jié),在調(diào)試過(guò)程中,要清楚每個(gè)資源的變化情況;
程序員在編寫(xiě)匯編語(yǔ)言程序時(shí),為了提高資源的利用率,可以使用各種實(shí)現(xiàn)技巧,而這些技巧完全有可能破壞程序的可讀性。這樣,在調(diào)試過(guò)程中,除了要知道每條指令的執(zhí)行功能,還要清楚它在整個(gè)解題過(guò)程中的作用;
高級(jí)語(yǔ)言程序幾乎不顯式地使用“轉(zhuǎn)移語(yǔ)句”,但匯編語(yǔ)言程序要用到大量的、各類(lèi)轉(zhuǎn)移指令,這些跳轉(zhuǎn)指令大大地增加了調(diào)試程序的難度。如果在匯編語(yǔ)言程序中也強(qiáng)調(diào)不使用“轉(zhuǎn)移指令”,那么,匯編語(yǔ)言程序就會(huì)變成功能單調(diào)的順序程序,這顯然是不現(xiàn)實(shí)的;
調(diào)試工具落后,高級(jí)語(yǔ)言程序可以在源程序級(jí)進(jìn)行符號(hào)跟蹤,而匯編語(yǔ)言程序只能跟蹤機(jī)器指令。不過(guò),現(xiàn)在這方面也有所改善,CV(CodeView)、TD(Turbo Debug)等軟件也可在源程序級(jí)進(jìn)行符號(hào)跟蹤了。
關(guān)于本站|下載幫助|下載聲明|軟件發(fā)布|聯(lián)系我們
Copyright ? 2005-2024 hanheng168.com.All rights reserved.
浙ICP備2024132706號(hào)-1 浙公網(wǎng)安備33038102330474號(hào)