編寫並安裝int 7ch中斷例程,功能爲顯示一個用0結束的字符串,中斷例程安裝在0:200處

 

;編寫並安裝int 7ch中斷例程,功能爲顯示一個用0結束的字符串,中斷例程安裝在0:200處
;參數:(dh)=行號,(dl)=列號,(cl)=顏色,ds:si指向字符串首地址
assume cs:code
data segment
  db 'welcome to masm!',0
data ends
code segment
start:mov dh,10
      mov dl,10
      mov cl,2
      mov ax,data
      mov ds,ax
      mov si,0
      int 7ch
    
    
     mov ax,cs                ;中斷程序複製到0:200處
     mov ds,ax
     mov si,offset do7ch
     mov ax,0
     mov es,ax
     mov di,200h
     mov cx,offset do7chend-offset do7ch
     cld
     rep movsb
   
     mov ax,0                 ;設置中斷向量表
     mov es,ax
     mov word ptr es:[7ch*4],200h
     mov word ptr es:[7ch*4+2],0
      mov ax,4c00h
      int 21h

do7ch:push ax
      push bx
      mov ax,0b800h
      mov es,ax
      mov bx,0

      mov al,160    ;顯示首位置=行*160+列*2,
      mul dh
      mov dh,0
      add ax,dx
      add ax,dx
      mov bx,ax      ;顯示首位置賦給bx

  s:  mov al,ds:[si]
      cmp al,0
      je end7
      mov es:[bx],al
      mov es:[bx+1],cl
      inc si
      add bx,2
      jmp short s

   end7:pop bx
        pop ax
 iret
do7chend:nop
        

code ends
end start

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章