170425 彙編 實驗11和內中斷初識

2021-07-31 04:34:51 字數 1201 閱讀 1594

1625-5 王子昂 總結《2023年4月25日》 【連續第206天總結】

a.組合語言十一章

b.實驗11

子程式:將包含任意字元,以0結尾的字串中的小寫字母改為大寫字母

以前通過使用and來無差別修改字母的程式,現在有了條件轉移和大小寫判斷終於可以寫乙個判斷程式了

letterc:mov ch,0

l:mov al,[si];通過8位暫存器al來定義資料單位為1位元組

cmp al,97;將資料與97做比較

jb s0;al小於97則跳出(非小寫字母)

cmp al,122;將資料與122做比較

ja s0;大於122則跳出(非小寫字母)

sub al,20h;通過上述兩個邊界判斷以後則為小寫字母,進行減法,改為大寫字母

mov [si],al賦值回去

s0:mov cl,al判斷資料是否為0

jcxz ok

inc si非0則繼續迴圈,si+1移向下乙個字元

loop l

ok:ret

內中斷:任何乙個通用的cpu都可以在執行完當前指令後,檢測到從cpu外部或內部傳來的一種特殊資訊,並且可以立即對該資訊進行處理。把這種特殊資訊稱之為「中斷資訊」

內中斷表示cpu內部傳來的資訊,有4種情況

除法錯誤

單步執行

執行into指令

執行int指令

cpu需要對中斷資訊進行處理,首先要知道中斷資訊的**。因此中斷資訊必須包含識別**的編碼。

8086cpu用被稱為「中斷型別碼」的資料來標識**。

中斷型別碼是乙個位元組型資料,可以表示256種中斷資訊的**。

型別碼:

除法錯誤:0

單步執行:1

into指令:4

int指令:由int指令的引數n決定(int n),其中n即為中斷型別碼

如何處理,可以由程式設計決定。cpu在收到資訊後,應該轉去執行該中斷資訊的處理程式。

而要cpu轉向處理程式,就需要將cs:ip指向它的入口。因此cpu需要根據型別碼確定處理程式的入口位址。

因此,型別碼的作用就是用來定位中斷處理程式。

cpu根據中斷向量表來尋找處理程式的入口位址。

中斷向量表存放在記憶體位址0處,按照型別碼依次往下排,每個型別碼佔據2個字,分別存放入口位址的段位址和偏移位址

c.明日計畫

qt和js

組合語言十二章

《組合語言》第12章 內中斷 實驗12

王老師要求 仔細跟蹤除錯,在理解整個過程之前,不要進行後面課程的學習。這個實驗的答案,在文章中都有,每一步的講解,王老師講解的都很詳細到位。需要我們好好理解?實驗結果如下,加了一點顏色?中斷 cpu不在接著 剛執行完的程式 向下執行,而去轉去處理這個特殊資訊。中斷資訊 一種特殊的資訊。要求cpu馬上...

組合語言實驗11

編寫子程式,實現大小寫轉換 data segment db beginner s all purpose symbolic instruction code.0 data ends codesg segment assume cs codesg start mov ax,data mov ds,ax...

《組合語言》 王爽 實驗11

題 編寫乙個子程式,將包含任意字元,以0結尾的字串中的小寫字母轉變成大寫字母,描述如下。名稱 letterc 功能 將以0結尾的字串中的小寫字母轉變成大寫字母。引數 ds si指向字串首位址。如題,任意字元,就得考慮一些其他字元,這就需要劃分乙個範圍,就是取出的字元應該在小寫字母的ascii碼範圍內...