汇编利用B800段输出ASCII码表
来源:互联网 发布:淘宝假冒伪劣无需退货 编辑:程序博客网 时间:2024/06/06 11:40
汇编例子之修改B800显存段输出ascii码表
lines equ 19hrow_bytes equ 160 ;显存每行160bytescol_bytes equ 14dbottom_addr equ lines*row_bytesdata segmenttable db '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'data endscode segmentassume cs:code,ds:datastart:;清屏 MOV AX,3 INT 10H mov ax,data mov ds,ax;设置ES为显存起始地址 mov ax,0B800H ;字符模式 mov es,ax xor bx,bx xor si,si xor di,di ;DI清0 xor cx,cxnextc: ;输出ascii mov dh,04h ;颜色 mov dl,cl mov es:[bx+di],dx ;输出hex mov dh,02h ;颜色 mov si,cx push cx mov cl,4 shr si,cl pop cx mov dl,byte ptr table[si] mov es:[bx+di+2],dx mov si,cx and si,0fh mov dl,byte ptr table[si] mov es:[bx+di+4],dx ;输出dec mov dh,01h ;颜色 mov ax,cx ;百位数 mov dl,100 div dl mov dl,al add dl,30h ;转为ascii码 mov es:[bx+di+6],dx ;十位数 mov al,ah mov ah,0 mov dl,10 div dl add ax,3030h ;转为ascii码 mov dl,al mov es:[bx+di+8],dx ;个位数 mov dl,ah mov es:[bx+di+10],dx add bx,row_bytes ;跳到下一行 cmp bx,bottom_addr jb no_bottom xor bx,bx add di,col_bytesno_bottom: inc cx ;ascii增加 cmp cx,255 jbe nextc MOV AH,0 INT 16H mov ax,4C00H int 21Hcode endsend start
代码转载自百度知道:点击打开链接
- 汇编利用B800段输出ASCII码表
- 16位汇编 写入显存B800:0000 输出字符串
- 16位汇编显示ASCII码表_源程序
- ASCII码表
- ASCII 码表
- ASCII 码表
- ASCII码表
- ASCII码表
- ASCII码表
- ASCII码表
- ASCII码表
- ASCII码表
- ASCII码表
- ASCII码表
- ASCII码表
- ASCII码表
- ASCII码表
- ASCII码表
- Bochs使用
- 解决NDK出现error: exception handling disabled, use -fexceptions to enable的问题
- 基于MySQL的分布式事务控制方案(C#实现)
- MyEclipse/Eclipse快捷键调试大全
- 一些经典书籍推荐
- 汇编利用B800段输出ASCII码表
- JAVA中extends 与implements
- java.util.concurrent(JUC)的研究--》锁机制--》Lock与ReentrantLock
- FPGA学习细节问题
- php学习---函数(2)
- C# Jave 时间问题 毫秒区别
- echo 追加至文件
- JSP基础语法之七:response对象,定时刷新、四种跳转对比、cookie
- 百度2013校园招聘笔试题[软件研发]及答案