編寫兩個程序(1)該程序將它其中的一個子程序複製到200h處,(2)編寫一個程序,該程序調用存在於內存200h處的程序,在屏幕上打印綠色字符‘x’。調用後要確保能夠正確返回。

 

編寫兩個程序
   第一個: 編寫程序,該程序將它其中的一個子程序複製到200h處。
     被複制的子程序定義:
 名稱:putchar
     功能:在屏幕中間打印一個字符
        參數:ch爲給定的字符
       cl爲字符屬性
        返回值:無

 第二個:編寫一個程序,該程序調用存在於內存200h處的程序,在屏幕上打印綠色字符‘x’。調用後要確保能夠正確返回。

assume cs:code
code segment
start:
      mov ch,'x'
      mov cl,02h
      mov si,200h
     
      mov di,offset putchar
   s: mov ax,cs:[di]       ;將其子程序複製到cs:[200]處
      mov cs:[si],ax
      mov bl,0c3h
      cmp al,bl
      je n
      add di,2
      add si,2
      jmp short s

   n: mov ax,200h   ;調用存在於內存200h處的程序
      call  ax  ;指示內存單元時也可寫進16進制             
     
      mov ah,4ch
      int 21h
     
;名稱:putchar
;功能:在屏幕中間打印一個字符
;參數:ch爲給定的字符
;      cl爲字符屬性
;返回值:無    
putchar:push ax
        push cx
        mov ax,0b800h
        mov es,ax
 mov  es:[180*6+2*60],ch
 mov  es:[180*6+2*60+1],cl
 pop ax
 pop cx
 ret

      
code ends
end start

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