第四章組合語言程式設計

2022-12-23 19:27:03 字數 3201 閱讀 5806

4-1 若晶振為12mhz,試編制延時2ms和1s子程式。

4-2 將20h單元中8位無符號數,轉換成3為bcd碼並存放在30h(百位)和31h(十位)單元中。

4-3 將30h單元內的2個bcd數相乘,乘積位bcd數,並把乘積存放在31h單元。

4-4 試求21h和20h單元中16位帶符號二進位製補數碼的絕對值,並送回20h和21h單元,高位在先,低位在後

4-5 試求內部ram30h~37h單元中8個無符號數的算術平均值,結果存入38h單元。

4-6 試編一資料塊搬遷程式。將外部ram2000h~204fh單元中的數,移入內部ram30h~7fh單元中。

4-7 在內部ram的block開始的單元中有一無符號資料塊,資料塊長度存入len單元。試程式設計求其中的最小數並存入mini單元。

4-8 在內部ram的block開始的單元中有一帶符號資料塊其長度存入len單元。試程式設計求其中正數和負數的代數和,並分別存入psum與msum指向的單元中。

4-9 在內部ram的block開始的單元中有一無符號資料塊,其長度存入len單元。試程式設計重新按遞增次序排列,並存入原儲存區

4-10 試程式設計將(r2r3)中的二進位制數轉換成bcd碼,並存入r0指向的單元中。用除以10次冪取商法程式設計。

4-11 試程式設計將r0指向的內部ram中16個單元的32個十六進製制數,轉換成ascii碼並存入r1指向的內部ram中。

4-12 在內部ram的one和two單元各存有一帶符號x和y。試程式設計按下式要求運算,結果f存入func單元。

x+y 若x位正奇數

x∧y 若x位正偶數

f= x∨y 若x位負奇數

x+y 若x位負偶數

x若x等於零

4-13 設變數x存入var單元,函式f存入func單元,試程式設計按下式要求給f賦值。

1 x>0

f= 0 x=0

1 x<0

4-14 設變數x存入var單元,函式f存入func單元,試程式設計按下式要求給f賦值。

1x≥20

f= 020≥x≥10

1x<10

4-15 試程式設計,根據r3內容00h~0fh,轉換到16個不同分支,分支均處於同一2程式儲存器之內。

4-16 試程式設計,根據r3內容00h~0fh,轉換到16個不同分支,分支均處於同一2程式儲存器任何位置。

試編一4位元組裝載子程式load4。

功能:內部ram中4個單元內容裝載到工作暫存器。

入口:(r0)=低位元組位址指標

出口:(r7r6r5r4)=裝入的4個單元內容

4-17 試編一查表求平方子程式sqr。

功能:用指令movc a,@a+pc求平方值(x<15)。

入口:(a)=x

出口:(a)=x*x

4-18 試編一多位元組右移子程式nrrc。

功能:n位元組數右移一位(相當除2)。

入口:(r0)=運算元高位元組位址指標

r7)=位元組數 n

出口:(r0)=運算元低位元組位址指標

4-19 試編一多位元組乘以10子程式mul10。

功能:內部ram中的n位元組數乘以10。

入口:(r0)=運算元低位元組位址指標

(r7)=位元組數 n

出口:(r0)=運算元高位元組位址指標

4-20 試編一3位元組數乘1位元組數子程式mul4。

功能:3位元組數乘以1位元組,乘積為4位元組

入口:(r0)=被乘數低位元組位址指標

r2)=乘數

出口:(r1)=乘積高位元組位址指標

4-21 試編一4位元組數除以1位元組數子程式div4。

功能:4位元組數除以1位元組,商為3位元組

入口:(r0)=被除數低位元組位址指標

r6)=除數

出口:(r3r4r5)=商

r2)=餘數

4-22 ,一直進到遇見回車符cr或整個字串傳送完畢.

4-23 內部ram從list單元開始存放一正數表,表中之數作無序排列,並以「-1」作結束標誌.程式設計實現在表中找出最小數.

4-24 求8個數的平均值,這8個數以**形存放在從table開始的單元中.

4-25 把乙個8位二進位制數的各位用ascii碼表示之(亦即為」0」的位用30h表示,為」1」的位用勁1h表示).該數存放在內部ram中byte單元中.變換後得到的8個ascii碼存放在外部ram以buf開始的儲存單元中去.

4-26 ascii碼字元中最後乙個非空格字元,字串從外部ram8100h單元開始存放,並用乙個回車符(0dh)作結束.程式設計實現搜尋並把搜尋到的非空格字元的位址存入內部ram單元40h和41h中,其中高位元組放入41h單元.

4-27 比較兩個ascii碼字串是否相等.字串的長度在內部ram41h單元,第乙個字串的首位址為42h,第二個字串的首位址為52h.如果兩個字串相等,則置內部ram40h為00h;否則40h單元為ffh.

4-28 在外部ram首位址為table的資料表中,有10個字元的資料.程式設計將每個位元組的最高位無條件地置」1」.

4-29 將8000h開始的有200個位元組的源資料區,每隔乙個單元送到4000h開始的資料區.在目的資料區中,每隔兩個單元寫乙個數.如遇0dh(回車)則傳送結束.

4-20 輸入緩潰區inbuf存有80個位元組,程式設計實現將其所有的組分隔符(1dh)的位址依次壓入separ棧中.

4-31 從內部ram緩衝區buffin向外部ram buffout傳送乙個字串,遇9dh結束,置psw的f0位為」1」;或傳送完128個字元後結束,並置psw的ov位為」0」.

4-32 編寫讀取執行的定時器中計數器值並送led顯示器顯示的程式。可根據需要定義子程式。

4-33 求16位帶符號二進位制補碼數的絕對值。假定補碼放在內部ram的num和num+1單元中,求得的絕對值仍放在原單元中。

4-34 求16位補碼數的原碼。16位補碼數放在內部ram的data和data+1單元中,轉換後得到的原碼仍放在原單元中。

4-35 從內部ram20h單元開始存放一組帶符號數,位元組個數存在1fh中。請統計出其中大於0、等於0和小於0的數的數目,並把統計結果分別存人one、two和three3個單元中。

4-36 5個雙位元組數,存放在外部ram中的barf開始的單元中,求它們的和,並把和存放在sum開始的單元中,請程式設計實現。

4-37 把外部ram中block1為首位址的資料塊傳送到內部ram以block2為首位址的單元中去,資料塊的長度為n位元組。

組合語言第四章程式設計的基本方法

組合語言程式中,最常見的幾種程式結構形式 順序程式 分支程式 迴圈程式 子程式。轉移指令 分支程式的設計 迴圈程式設計,迴圈指令 堆疊的概念,進棧 出棧指令 子程式的定義 呼叫 返回 主程式與子程式的引數傳遞 特點 改變程式的執行順序,即改變了指令指示器ip的內容。功能 由上一條指令所設的條件碼來判...

組合語言程式設計

實驗報告 軟體學院 一 實驗目的與意義 理解並熟練掌握組合語言程式設計過程中的編輯 彙編 鏈結和除錯等各個步驟,提高對彙編課程內容的理解和組合語言的掌握,通過上機練習加深對課程內容的理解和掌握。通過組合語言編制的程式上機除錯 執行檢驗程式設計是否正確。熟悉和掌握編輯 彙編 連線和除錯四個實用程式的使...

第四章選擇結構程式設計

4.1 選擇結構程式設計的概念 在實際工作中,常常需要根據某個條件是否成立,來決定下一步應該做什麼工作。編寫程式讓計算機工作,同樣存在這種情況。在這種情況下,程式不再按照 的書寫順序來執行各語句行的語句,而是根據給定的條件來選擇,執行哪些語句行,不執行哪些語句行。選擇結構程式也稱為分支構造程式,即程...