鱼C论坛

 找回密码
 立即注册
查看: 2856|回复: 0

[技术交流] 实验 13-1 作业完成

[复制链接]
发表于 2011-6-11 23:58:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. assume cs:code
  2. data segment
  3.      dd  2 dup(0) ;调试时临时存放段地址和偏移
  4. str  db 'http://www.fishc.com/',0 ; str当变量名用


  5. first:
  6. ;--------------要安装的内容--------------------
  7. ;功能:在7ch中断处显示用0结束的字符串
  8. ;参数:dh=行号  dl=列号  cl=颜色  DS:SI 指向字符串首地址       
  9.         push ax
  10.         push bx
  11.         push es
  12.        
  13.         mov ax,0b800h
  14.         mov es,ax;显示区---段地址
  15.        
  16.         mov ax,0
  17.         ;计算行偏移
  18.         mov al,dh
  19.         mov bl,80*2
  20.         mul bl
  21.         push ax
  22.         ;计算列偏移
  23.         mov al,dl
  24.         mov bl,2
  25.         mul bl
  26.         pop bx
  27.         add bx,ax;显示区---总偏移

  28. s:       
  29.         mov al,[si]
  30.         cmp al,0 ;比较是否到字符串尾部
  31.         je ok
  32.         mov es:[bx],al
  33.         mov es:[bx+1],cl ;置颜色属性
  34.         inc si
  35.         add bx,2
  36.         JMP short s
  37. ok:       
  38.         pop es
  39.         pop bx
  40.         pop ax
  41.         iret
  42. ;--------------要安装的内容--------------------
  43. last:       
  44.         nop
  45.                         
  46. data ends


  47. code segment
  48. start:
  49.         mov ax,data
  50.         mov ds,ax
  51.         ;------调试安装内容代码--------
  52.         ;调试无错后去除这段
  53.         ;mov word ptr [2],data
  54.         ;mov word ptr [0],offset first
  55.         ;mov dl,12 ;参数
  56.         ;mov dh,5  ;参数
  57.         ;mov cl,11001010b  ;参数
  58.         ;mov si,offset str ;参数
  59.         ;jmp dword ptr ds:[0]
  60.        
  61. ;-------------------安装----------------
  62.        
  63.         mov si,offset first
  64.         mov ax,0
  65.         mov es,ax
  66.         mov di,200h
  67.         mov cx,offset last - offset first ;安装内容-长度
  68.         cld
  69.         rep movsb
  70. ;-------改变中断地址---------------------
  71.         mov word ptr es:[7ch*4],200h  ;一个地址4字节 地址=编号*4
  72.         mov word ptr es:[7ch*4+2],0   ;偏移占2字节 段占2字节
  73.        
  74. ;---------调用改变后的7ch中断--------------
  75.         mov dh,10 ;参数
  76.         mov dl,10 ;参数
  77.         mov cl,2  ;参数
  78.         mov si,offset str;参数
  79.         int 7ch
  80.        
  81.         mov ax,4c00h
  82.         int 21h

  83. code ends
  84. end start
  85. ;emu8086 4.08 测试通过
复制代码

评分

参与人数 1荣誉 +1 收起 理由
loop + 1 赞一个!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-11 12:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表