2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 汇编

在屏幕上显示笑脸,显示坐标依次递增(或递减),碰到.....

时间:06-15来源:作者:点击数:150
在屏幕上显示笑脸,显示坐标依次递增(或递减),碰到.....
 
  • assume cs:code
  • code segment
  • dec dh
  • dec dl
  • inc dh
  • inc dl ;预存指令
  • start: mov ax,cs
  • mov ds,ax
  • mov si,0
  • lea di,s1 ;使ds:si指向预存指令,ds:di指向目的地址
  • mov dx,0h ;光标起始坐标0,0
  • s:mov ah,2
  • mov bh,0
  • int 10h ;调用int 10h第2号中断,置光标
  • ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  • mov ah,0ah ;int 10h第0a号中断
  • mov al,2 ;显示笑脸
  • mov bh,0 ;第0页
  • mov cx,1 ;重复次数1
  • int 10h
  • call delay ;延迟显示
  • in al,60H
  • cmp al,10H
  • jz over
  • ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  • mov ah,0ah ;用int 10h 0a号中断清除笑脸
  • mov al,0
  • mov bh,0
  • int 10h
  • ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  • cmp dh,24 ;行号是否为24
  • jb L ;小于则转 L
  • mov ax,[si] ;等于则改s1处为自减
  • mov [di],ax
  • L2:cmp dl,79 ;列号是否为79
  • jb L1 ;小于则转 L1
  • mov ax,[si+2] ;等于,改si+2处为自减
  • mov [di+2],ax
  • jmp s1
  • L:cmp dh,0 ;行号是否为0
  • ja L2 ;大于0转L2
  • mov ax,[si+4] ;为0 ,改s1处为自加
  • mov [di],ax
  • jmp L2
  • L1:cmp dl,0 ;列号是否为0
  • ja s1 ;大于转 s1
  • mov ax,[si+6] ;等于改 s1+2处 自加
  • mov [di+2],ax
  • s1:inc dh
  • inc dl
  • jmp s
  • over: mov ax,4c00h
  • int 21h
  • ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  • delay:push ax
  • push dx
  • mov dx,500h
  • mov ax,0
  • s3: sub ax,1
  • sbb dx,0
  • cmp ax,0
  • jne s3
  • cmp dx,0
  • jne s3
  • pop dx
  • pop ax
  • ret
  • ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  • code ends
  • end start


比较有意思的一个汇编程序。
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
上一篇:很抱歉没有了 下一篇:汇编语言入门
推荐内容
相关内容
栏目更新
栏目热门