编写两个程序(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

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