鱼C论坛

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

[技术交流] 实验16

[复制链接]
发表于 2014-6-9 16:47:05 | 显示全部楼层 |阅读模式

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

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

x

  1. assume cs:code

  2. code segment

  3. start:
  4.   ;0  清屏,1 前景色  2 背景色  3 上滚动
  5.   ;ah  功能   al 颜色
  6.   MOV AH,1
  7.   MOV AL,01010000b
  8.   INT 7ch


  9.   mov ax,4c00h
  10.   int 21h

  11. code ends
  12. end start
复制代码


  1. assume cs:code

  2. code segment
  3. start:
  4.   MOV AX,CS
  5.   MOV DS,AX
  6.   MOV SI,offset int7chStart
  7.   
  8.   MOV AX,0
  9.   MOV ES,AX
  10.   MOV DI,200h

  11.   MOV CX,offset int7chEnd-offset int7chStart
  12.   CLD

  13.   REP movsb

  14.   MOV AX,0
  15.   MOV DS,AX

  16.   MOV WORD ptr DS:[7ch*4],200h
  17.   MOV WORD ptr DS:[7ch*4+2],0

  18.   mov ax,4c00h
  19.   int 21h

  20.   
  21.   int7chStart:
  22.     JMP short ok  
  23.     ;qingping标记这里偏移是根据 当前cs:0 偏移位置,而我们要把这段程序写到 o:200的位置去,所以要-a+202h 为什么不是加+200h是因为 jmp short ok这里占了2个字节
  24.     ; 也可以这样写 a DW qingping-int7chStart+200h,qianjingse-int7chStart+200h,beijingse-int7chStart+200h,shanggundong-int7chStart+200h
  25.     a DW qingping-a+202h,qianjingse-a+202h,beijingse-a+202h,shanggundong-a+202h
  26.     ok:
  27.       PUSH AX
  28.       PUSH DS
  29.       PUSH bx

  30.       PUSH AX
  31.    
  32.       MOV AX,CS
  33.       MOV DS,AX
  34.    
  35.       POP AX  
  36.    
  37.    

  38.       MOV BH,0
  39.       ADD AH,AH
  40.       MOV BL,AH

  41.    

  42.       CALL WORD ptr CS:[bx+202h]
  43.     POP bx
  44.     POP DS
  45.     POP AX
  46.     IRET

  47.    
  48.   ;清屏
  49.   qingping:
  50.     PUSH AX
  51.     PUSH ES
  52.     PUSH SI
  53.     PUSH CX
  54.    
  55.     MOV AX,0b800h
  56.     MOV ES,AX
  57.     MOV SI,0

  58.     MOV CX,2000

  59.     s:   
  60.       MOV BYTE ptr ES:[si],' '
  61.       ADD SI,2
  62.     LOOP s

  63.     POP CX
  64.     POP SI
  65.     POP ES
  66.     POP AX
  67.     RET

  68.   ;前景色
  69.   qianjingse:
  70.     PUSH AX
  71.     PUSH ES
  72.     PUSH SI
  73.     PUSH CX

  74.     PUSH AX
  75.     MOV AX,0b800h
  76.     MOV ES,AX
  77.     MOV SI,1
  78.     POP AX

  79.     MOV CX,2000

  80.     s1:
  81.       AND BYTE ptr ES:[si],11111000b
  82.       OR ES:[SI],AL
  83.       ADD SI,2
  84.     LOOP s1   
  85.    
  86.     POP CX
  87.     POP SI
  88.     POP ES
  89.     POP AX
  90.     RET

  91.   ;背景色
  92.   beijingse:
  93.     PUSH AX
  94.     PUSH ES
  95.     PUSH SI
  96.     PUSH CX

  97.     PUSH AX
  98.     MOV AX,0b800h
  99.     MOV ES,AX
  100.     MOV SI,1
  101.     POP AX

  102.     MOV CX,2000

  103.     s2:
  104.       AND BYTE ptr ES:[si],10001111b
  105.       OR ES:[SI],AL
  106.       ADD SI,2
  107.     LOOP s2   
  108.    
  109.     POP CX
  110.     POP SI
  111.     POP ES
  112.     POP AX
  113.     RET

  114.   ;上滚动
  115.   shanggundong:
  116.     PUSH AX
  117.     PUSH DS
  118.     PUSH ES
  119.     PUSH SI
  120.     PUSH DI
  121.     PUSH CX
  122.    
  123.     MOV AX,0b800h
  124.     MOV DS,AX
  125.     MOV ES,AX
  126.    
  127.     MOV SI,160
  128.     MOV DI,0
  129.     MOV CX,24
  130.     CLD

  131.     s3:
  132.       PUSH CX
  133.       MOV CX,160
  134.       
  135.       REP movsb

  136.       POP CX
  137.     LOOP s3

  138.     MOV CX,160
  139.     s4:
  140.       MOV BYTE ptr [di],' '
  141.       ADD DI,2
  142.     LOOP s4

  143.     POP CX
  144.     POP DI
  145.     POP SI
  146.     POP ES
  147.     POP DS
  148.     POP AX
  149.     RET
  150.   int7chEnd:nop

  151. code ends
  152. end start
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-23 15:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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