鱼C论坛

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

[汇编作业] 检测点13.1(2)

[复制链接]
发表于 2020-3-19 13:13:20 | 显示全部楼层 |阅读模式

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

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

x
安装7ch中断例程

  1. assume cs:code

  2. code segment
  3. start:
  4.                 mov ax,cs
  5.                 mov ds,ax
  6.                 mov si,offset do0
  7.                 mov ax,0
  8.                 mov es,ax
  9.                 mov di,200h                ;将do0写到0:200处
  10.                 mov cx,offset do0end-offset do0
  11.                 cld
  12.                 rep movsb
  13.                
  14.                 ;设置中断向量表
  15.                 mov ax,0                                       
  16.                 mov es,ax                                                ;将es指向中断向量表
  17.                 mov word ptr es:[7ch*4],200h        ;发生7ch中断时跳转到0:200处执行
  18.                 mov word ptr es:[7ch*4+2],0
  19.                
  20.                 mov ax,4c00h
  21.                 int 21h
  22.                
  23.                
  24.                
  25. ;中断例程,跳转到s处
  26. ;S的地址相对于进入中断时程序执行的偏移地址的偏移量存储在bx中
  27. ;进入中断时程序执行的偏移地址存放在ss:[sp]处               
  28. do0:       
  29.                 push bp
  30.                 mov bp,sp
  31.                 add ss:[bp+2],bx
  32.                 pop bp
  33.                 iret
  34. do0end: nop               

  35. code ends
  36. end start
复制代码


应用调起7CH中断(题目给的程序,改了字体颜色,测试的时候按题目中不给字体颜色不显示字符,感觉奇怪...)

  1. assume cs:code

  2. data segment
  3.         db 'conversation',0
  4. data ends

  5. code segment
  6. start:
  7.                 mov ax,data
  8.                 mov ds,ax
  9.                 mov ax,0b800h
  10.                 mov es,ax                        ;指向显存
  11.                 mov di,160*12
  12.                
  13. s:                cmp byte ptr [si],0
  14.                 je ok                                ;(ds:[si])=0时则跳转
  15.                 mov al,[si]
  16.                 mov ah,02;                        ;绿色字体
  17.                 mov es:[di],ax                ;写显存
  18.                 inc si
  19.                 add di,2
  20.                 mov bx,offset s-offset ok;        bx保存ok到s的程序长度
  21.                 int 7ch
  22. ok:                mov ax,4c00h
  23.                 int 21h
  24.        
  25.                 mov ax,4c00h
  26.                 int 21h
  27.                
  28. code ends
  29. end start


  30.                
复制代码

t13-1-2.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 11:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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