一个字符图形程序

原创 2004年07月11日 20:13:00

  

  这个是学完汇编后,做的第一个小程序.程序很小,当时却对此颇为满意.自认为是自己做的第一个成型的程序.为缅怀那份得意的心情,先把这个勉为其难称为程序的程序放在这:).

  简介:制作图形元素表,表中将所需的各种字符图形编上号码,并用存储器映射法将其显示在屏幕的左上部分。将光标定位在屏幕的右半部分画图区。上、下、左、右光标控制键控制光标在四个方向上移动,不显示其轨迹同时要控制光标位置不超出画图区的边界。当按动某一数字键时,在光标位置处显示出相应编号的字符图形,然后移动光标,再显示一个字符图形,最后绘制出一幅由字符组成的图形。按动ESCape键,退出程序,返回DOS

 

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

data  segment

buffer  db   200 dup(?)                                            

db1   db   1

db2   db   0

db3   db   00h

msg1 db 'THE TABLE:  THE DRAWING AREA:(press "esc" key to exit)','$'

data ends

program  segment

main      proc    far

        assume cs:program,ds:data 

start:

     push ds

     sub ax,ax

     push ax

mov ax,data

mov ds,ax

 

     mov ah,09

lea dx,msg1               ;显示信息

int 21h 

                         

mov bx,26

     mov db1,0                ;显示分界线

     mov db2,36

op:

     mov ah,2

     mov bh,0  

     mov dh,db1              ;初始化光标

     mov dl,db2

     int 10h

mov bh,0

     mov cx,1

     mov al,2ah

     mov ah,0ah

     int 10h

     inc db1

     dec bx

     jnz op

 mov db1,1

     mov db2,0

     mov si,0

op1:                          ;制作图形元素表

     mov ah,2

     mov bh,0  

     mov dh,db1                   ;定位光标

     mov dl,db2

     int 10h

 

     mov al,db3

     mov buffer[si],al               ;显示数字并存入ASCII

     push si

     add si,30h

     mov bh,0

     mov ax,si

     and ax,00ffh

     mov cx,1

     mov ah,0ah

     int 10h

    

     inc db2

     cmp db2,39                   ;判断是否过界

     jna  op2

     inc  db1

     mov db2,0

 

op2:  mov ah,2

     mov bh,0  

     mov dh,db1                   ;重定位光标

     mov dl,db2

     int 10h

    

     mov ah,0ah     

     mov bh,0                     ;显示字符

 

     mov al,db3

     mov cx,1

     int 10h

 

     pop si

     inc si

     inc db3

     cmp db3,09h

     ja over

add db2,7                   

  cmp db2,39              ;判断是否过界

     jna  op1

     inc  db1

      mov db2,0

     jmp op1

over:       

   mov db1,1

   mov db2,38

 

   mov ah,2

   mov bh,0  

   mov dh,1

   mov dl,38                ;初始化光标

   int 10h

  

opp0: 

  mov ah,0

  int 16h                   ;判断输入键

  cmp ah,48h               ;方向键

  je up                  

  cmp ah,50h

  je down

  cmp ah,4dh

  je right

  cmp ah,4bh

  je left

  cmp ah,01h                ESC

 

  jnz rr

     ret

rr:  cmp al,30h              ;数字键

  jnb opp2

  jmp opp0

opp2:

  cmp al,39h

  ja  opp0

  and ax,00ffh

  sub ax,30h

  mov si,ax

  mov al,buffer[si]           ;显示相应字符

  mov bh,0

  mov cx,1

  mov ah,0ah

  int 10h

jmp opp0

up:

   dec db1

   jz  edg_up

   jmp opp1               ;定界线

edg_up:

   mov db1,1

   jmp opp1

down:

   inc db1

   cmp db1,24

   ja  edg_down

   jmp opp1

edg_down:

   mov db1,24

   jmp opp1

right:

   inc db2

   cmp db2,78

   ja edg_right

   jmp opp1

edg_right:

   mov db2,78

   jmp opp1

left:

   dec db2

   cmp db2,38

   jb  edg_left

   jmp opp1

edg_left:

   mov db2,38

opp1:  

   mov ah,2

   mov bh,0                ;重定位光标

   mov dh,db1

   mov dl,db2

   int 10h

   jmp opp0

exit:

   ret                      ;返回DOS

main endp

program  ends

   end start

 

字母图形(字符与ASCII码)

问题 /*字母图形 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律...
  • qq_34216631
  • qq_34216631
  • 2017年03月27日 19:44
  • 427

Eamcs ditaa根据字符图形生成图片

ditta和artist mode是好兄弟。artist mode帮助我快速创建字符图形,ditta是一个java程序,可以读取该字符图形,并生成图片。ditta的网站:http://ditaa.so...
  • sheismylife
  • sheismylife
  • 2014年10月18日 22:14
  • 3128

c++:使用*号打印三角形

记得在初学C & Java的时候,我有做过这种练习。不过印象也不是很深刻了,只是还有一点印象。大致记得就是按照老师讲的步骤去一步一步完成就好了。具体的实现思路是一点不记得了。 今天在看C++看到这个练...
  • DucklikeJAVA
  • DucklikeJAVA
  • 2017年07月16日 22:56
  • 511

一个简单的字符设备驱动程序和测试程序

------------------------字符设备驱动程序------------------------------ #include  #include  #include  ...
  • howhot2008
  • howhot2008
  • 2015年11月09日 13:48
  • 1084

课堂在线Java程序设计 类的继承

我们有一些图形的边长数据,这些图形包括三角新和矩形,请你编写一个程序求出它们的面积。  请你实现一个基础图形类Graph,然后实现三角形类Triangle和矩形类Rectangle,继承自Graph...
  • u010623699
  • u010623699
  • 2017年06月22日 16:26
  • 181

可以输出图形字符的几个命令

1、banner 先使用如下命令安装: $ sudo apt-get update;sudo apt-get install sysvbanner 然后: $ banner I...
  • songshiMVP1
  • songshiMVP1
  • 2015年06月25日 12:36
  • 1138

编程趣谈:输出字符图形

编程趣谈:输出字符图形前言——重返“新生村”故事是这样的,大二新学期伊始,我们的数据结构的任课教师觉得我们的编程基础太差劲了,为了尽快弥补基础,布置一道大一新生的编程作业(非常简单,我承认自己的编程技...
  • wyf12138
  • wyf12138
  • 2017年02月23日 21:02
  • 228

计算机图形学(二)输出图元_15_字符图元

和其他图元一样,字符的几何描述在世界坐标系中给出,该信息由观察变换映射到屏幕坐标系。位图字符使用矩形网格的二进制值及网格参考位置来描述。该位置随后被映射到帧缓存中的指定位置。轮廓字符由一组用曲线或线段...
  • heyuchang666
  • heyuchang666
  • 2016年05月27日 10:06
  • 826

c++ 在控制台里用字符拼成图片

读取一个文件,用 在屏幕上输出各种字符的方法,拼出这张图片
  • github_24924857
  • github_24924857
  • 2015年06月14日 08:38
  • 3580

一个字符统计的程序

//By Aba#include #include #include #include #define FILENAMELENGTH 256 #define TYPES 6 //手动更新 us...
  • abacn
  • abacn
  • 2013年06月23日 23:14
  • 612
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个字符图形程序
举报原因:
原因补充:

(最多只允许输入30个字)