鱼C论坛

 找回密码
 立即注册
查看: 3230|回复: 4

[汇编作业] 实验16

[复制链接]
发表于 2014-10-7 22:59:36 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 avatar10010 于 2014-10-8 10:52 编辑
  1. assume cs:code
  2. code segment
  3. start:                    
  4.     mov ax,cs
  5.     mov ds,ax
  6.     mov si,setscreen  
  7.     xor ax,ax
  8.     mov es,ax
  9.     mov di,200h
  10.     mov cx,endscreen-setscreen
  11.     cld
  12.     rep movsb
  13.     mov word ptr es:[7ch*4],200h
  14.     mov word ptr es:[7ch*4+2],0

  15.     mov ah,2     ;测试int 7ch中断
  16.     mov al,4     ;测试int 7ch中断
  17.     int 7ch      ;测试int 7ch中断
  18.     mov ax,4c00h
  19.     int 21h           
  20.     org 200h
  21.        
  22. setscreen:
  23.         jmp begin
  24.         table dw sub0,sub1, sub2, sub3  
  25. begin:
  26.         push bx
  27.         cmp ah,3
  28.         ja sret
  29.         mov bl,ah
  30.         xor bh,bh
  31.         add bx,bx
  32.         call table[bx]
  33. sret:
  34.         pop bx
  35.         iret
  36.        
  37. sub0:
  38.         push bx
  39.         push cx
  40.         push es
  41.        
  42.         mov bx,0b800h
  43.         mov es,bx
  44.         xor bx,bx
  45.         mov cx,2000
  46. s0:
  47.         mov byte ptr es:[bx],' '
  48.         add bx,2
  49.         loop s0
  50.        
  51.         pop es
  52.         pop cx
  53.         pop bx
  54.         ret
  55.        
  56. sub1:
  57.         push bx
  58.         push cx
  59.         push dx
  60.         push es
  61.        
  62.         mov bx,0b800h
  63.         mov es,bx
  64.         mov bx,1
  65.         and byte ptr es:[bx],11111000b
  66.         or es:[bx],al
  67.         mov dl,es:[bx]
  68.         mov cx,2000
  69. s1:
  70.         mov es:[bx],dl
  71.         add bx,2
  72.         loop s1
  73.                
  74.         pop es
  75.         pop dx
  76.         pop cx
  77.         pop bx
  78.         ret
  79.        
  80. sub2:
  81.         push bx
  82.         push cx
  83.         push dx
  84.         push es
  85.        
  86.         mov cl,4
  87.         shl al,cl
  88.         mov bx,0b800h
  89.         mov es,bx
  90.         mov bx,1
  91.         and byte ptr es:[bx],10001111b
  92.         or es:[bx],al
  93.         mov dl,es:[bx]
  94.         mov cx,2000
  95. s2:
  96.         mov es:[bx],dl
  97.         add bx,2
  98.         loop s2
  99.        
  100.         pop es
  101.         pop dx
  102.         pop cx
  103.         pop bx
  104.         ret
  105.        
  106. sub3:
  107.         push cx
  108.         push si
  109.         push di
  110.         push es
  111.         push ds
  112.        
  113.         mov si,0b800h
  114.         mov es,si
  115.         xor di,di
  116.         mov ds,si
  117.         mov si,160
  118.         mov cx,24*80
  119.         cld
  120.         rep movsw
  121.        
  122.         mov cx,80
  123. s3:
  124.         mov byte ptr es:[di],' '
  125.         add di,2
  126.         loop s3
  127.        
  128.         pop ds
  129.         pop es
  130.         pop di
  131.         pop si
  132.         pop cx
  133.         ret  
  134.          
  135. endscreen:
  136.         nop  
  137.           
  138. code ends
  139. end start
复制代码

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

使用道具 举报

发表于 2014-10-8 08:16:03 From FishC Mobile | 显示全部楼层
int 7ch 是计算ax的平方的 mov ah 0时ax已经为0了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-8 09:20:03 | 显示全部楼层
15岁的小朋友 发表于 2014-10-8 08:16
int 7ch 是计算ax的平方的 mov ah 0时ax已经为0了

我是重新安装的int 7ch中断例程
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-11-1 01:54:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-21 23:42:44 | 显示全部楼层
偏移很容易混淆
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-2 20:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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