如何學好組合語言

2022-11-04 01:35:09 字數 1649 閱讀 9421

1樓:匿名使用者

同學,最簡單的方法就是自己寫兩個小程式,你現在不會寫,就看書上的例子,一條一條看,自己也可以在run裡面輸入cmd.exe,然後在出現的模擬dos環境下,輸入debug32,再輸入a後回車,就可以自己輸入一些簡單的指令,並且看到你輸入的東西的實時變化,比如,你輸入

mov ax,34h 然後你就會看到相應的暫存器ax裡面裝了34這個資料,其實彙編並不難學,我曾經也是和你一樣覺得這個東西很枯燥很難學,但是隻要你慢慢的靜下心來學,就會發現原來也是很簡單的。

現在回答你說的那個ax、bx、cx、dx的問題,這個是組合語言裡最常用的四個暫存器,用來存放我們需要電腦記住的東西。打個比方,就像你的衣櫃是裝衣服的,書櫃是放書的,那幾個暫存器就相當於這些衣櫃,書櫃之類的東西。你寫一個程式,肯定會用到很多資料,那麼這些資料當然需要東西來裝了,它們就派上用場了,當然這幾個是裡面最常用的幾個,還有di、si、bp、sp;以及段暫存器器cs、ds、es、ss,每個暫存器都可以裝資料,但是有的是專用暫存器,它就只能做專門的用途,比如段暫存器只能存放段的地址,我不知道你對段有沒有概念,如果你還沒有這個概念就趕緊回去看一下這一部分,這個是很重要的。

在編寫程式的時候,說白了就是把你的資料和指令放在暫存器或者記憶體裡面,等到你的程式執行到了相應的位置,就去取相應的資料,這也就是所謂的定址,所以瞭解分段是很重要的,由於8086的架構有20根地址線,但是暫存器最多也只能裝下16位,為了解決這個矛盾,聰明的設計師們就採用給了分段的機制,也就是把2的20次方(即1m)的記憶體分成了很多段,每一段的大小就是好暫存器剛好能定址的能力(2的16次方=64kb),所以才會有cs:ip、ds:dx這種格式來表示資料,冒號前面的部分就是段地址,冒號後面的就是相對於該段地址的一個偏移量,數學學得好的人應該不難想像,一個絕對地址=基地址+偏移量,所以我們要找到一個資料的存放地址,就 要知道它的基地址和偏移量,基地址就是段地址向左移動四位得到的,因為段暫存器也是16位的容量,左移4位就剛好20位,和cpu的定址範圍一致,剛開始初學者不一定懂前輩們的巧妙心思,所以學會計算就行了。

用了這麼多口水,只是想說,組合語言不難學,如果你覺得難學,一定是你不夠用心,如果你覺得我說得不對,你現在自己捫心自問,你花了多少時間來認真學習它?我敢保證,一週時間都沒有。認真學習的話,要通過考試,一週時間足矣,好好加油吧!

希望你不要把學習當成一種負擔,等到工作了你就知道能靜靜地坐在教室裡學習是多麼地快樂!

祝你好運~

2樓:

ax bx dx cx 分別是 四個暫存器

基址暫存器 bx,bp

變址暫存器 si,di

所有的定址方式如下:

立即定址 mov ax,常數

直接定址 mov ax,[地址(常數)]

暫存器定址 mov ax,通用暫存器

暫存器間接定址 mov ax,[(bx,bp,si,di)中的一個]

暫存器相對接定址 mov ax,[(bx,bp,si,di)+偏移量]

基址變址定址 mov ax,[基址暫存器+變址暫存器]

相對基址變址定址 mov ax,[基址暫存器+變址暫存器+偏移量]

要想學好彙編還是要靠自己努力的,得花大量的課餘時間在電腦上練習,不然老師講的在清楚,資料再全,也沒用的。而學習的動力在於興趣,興趣的產生在於培養。

如何學習組合語言,學習組合語言需要如何入門?

學習組合語言過程 一,要有一定的微機硬體基礎知識,因為彙編很底層,更加接近機器語言,往往很多的東西要從機器層面來支援理解。二,最好先學習一門高階語言,因為高階語言更接近人的語言,相對比較容易理解。掌握了一門高階語言後再學彙編,一來不易產生畏懼感,二來遇到問題,只能侷限於已學的彙編知識來來思考遇到的問...

什麼是組合語言,什麼是彙編和組合語言?

組合語言就是計算機語言,它是有0,1組成的.通俗的說就是我們人和計算機交流的語言.介於機器語言和高階語言之間的一種 什麼是彙編和組合語言?彙編語copy言是一種低階計算bai機程式語言,說 低階du 並不是指語言的功能和複雜程度,而是它zhi出現在計算機發展史dao的早期,但現在仍廣泛應用於計算機開...

組合語言題,組合語言題目,求詳解

al 0 cf 0 code segment assume cs code org 100h start push cs pop ds push cs pop es mov al,ah not al add al,ah inc al jc 1 mov dl,0 mov ah,2 int 21h jm...