匯編語言第三版-檢測(cè)點(diǎn)13.1

1. 7ch中斷例程所能進(jìn)行的最大轉(zhuǎn)移位移是 *** -128 ~ 127 *** ,所以是128位。
2. 用7ch中斷例程完成 jmp near ptr s(近轉(zhuǎn)移)指令的功能,用bx向中斷例程傳送轉(zhuǎn)移位移。
   應(yīng)用舉例: `在屏幕第12行,顯示data段中以0為結(jié)尾的字符串`
assume cs:code 
data segment
    db 'conversation',0
data ends

code segment
    start: mov ax,data
           mov ds,ax
           mov si,0
           mov ax,0b800h    
           mov es,ax
           mov ah,6     ; 字體顏色,橙色

        s: cmp byte ptr[si],0
           je ok
           mov bx,140h      ;140h表示第三行,總共25行 (80*25)
           add bx,0ah       ;從第10列開始顯示
           mov al,[si]
           mov es:[bx+di],ax
           inc si
           add di,2

           mov bx,offset s-offset ok ; s 子程序中 bx 會(huì)被多次的賦值,不同的賦值都有不同的作用
           int 7ch  ;7ch向量表所對(duì)應(yīng)的中斷例程主要的作用就是設(shè)置cs-ip,使它指向 s 處 。從而達(dá)到循環(huán)的目的

      ok:  mov ax,4c00h
           int 21h   


code ends
end start


分析:
1. 首先我們知道中斷例程是中斷處理程序,它是安裝在內(nèi)存的某處地方,并在中斷向量表中登記。所以我們可以把這個(gè)題目當(dāng)做是兩個(gè)程序,一個(gè)是安裝程序:中斷例程,另一個(gè)是主邏輯程序。
2. “應(yīng)用舉例”當(dāng)做主邏輯程序,下面?zhèn)儗懓惭b程序。


安裝程序

assume cs:code
code segment
    start: mov ax,cs
           mov ds,ax
           mov si,offset content 
           mov ax,0
           mov es,ax
           mov di,200h
           mov cx,offset endContent-offset content
           cld
           rep movsb  ; 正向拷貝指令到es:di處

           ; 設(shè)置中斷向量
           mov ax,0
           mov es,ax
           mov word ptr es:[7ch*4],200h
           mov word ptr es:[7ch*4+2],0    ; 只有被向量表登記了才能算是安裝程序,不然只能算是內(nèi)存中的一段數(shù)據(jù)。

           mov ax,4c00h
           int 21h

 content: push bp
          mov bp,sp
          add [bp+2],bx ; 這里bp+2的原因是 因?yàn)楫?dāng)前的棧頂是bp,加2表示bp的下一個(gè)出棧對(duì)象ip。
          pop bp
          iret      ; pop ip, pop cs, popf 
endContent:nop
code ends
end start

總結(jié): 程序先運(yùn)行安裝程序,之后再運(yùn)行主邏輯程序,這么分開寫更加符合題意。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容