汇编程序设计总结报告

时间:2021-09-13 19:11:48 来源:网友投稿

  设计内容:

  本组负责设计一个文本编辑器(EDITOR),我主要编写光标的移动和清除屏幕模块,

  实现光标的移动和屏幕的清空。

  算法思想:

  A. 光标移动:

  (1) 该程序从键盘上操作;

  (2) 向上的箭头,表示光标要向上移动;

  (3) 向左的箭头表示光标要向左移动;

  (4) 向下的箭头表示光标要向下移动;

  (5) 向右的箭头表示光标要向右移动;

  该模块中,当输入¥时,则退出程序;然后,当以键盘输入箭头时,就进入循环来辨别箭头所实现的光标是向左向右还是向上向下

  B. 清除屏幕模块

  (1) 键盘输入前要清除屏幕;

  (2) 使整个屏幕的底色显示蓝色;

  光标移动主要使用循环和子程序调用。子程序中都用到了BIOS 中断和DOS的功能调用。

  编辑过程中的:

  这次我们编辑的是一个文本编辑器。 在此次的编写过程中,我充分的认识到,实践与理论相结合重要性。以前在学习汇编的过程中,感觉有一些的枯燥,但看这小小的光标在蓝色的屏幕上跳动,不尽的想:原来程序与现实距离是这么近。

  1. 不足之处:程序编写的有些复杂。在程序的调试和联接过程中,出现了一些错误,但都及时的解决。

  2. 经验:要加强动手能力,多多的编程,多多的上机。

  程序过程如下:

  lxx segment

  a db ?

  han1 dw ?

  lxx ends

  prognam segment

  main proc far

  assume cs:prognam,ds:lxx

  start:

  push ds

  mov ax,0

  push ax

  mov ax,lxx

  mov ds,ax

  call clen

  repea:

  mov ah,07h

  int 21h

  mov a,al

  cmp a,$

  je en

  cmp al,48h ;行减一

  jne x1

  call y1

  jmp repea

  x1:

  cmp a,4bh ;列减一

  jne x2

  call y2

  jmp repea

  x2:

  cmp a,50h ;行减一

  jne x3

  call y3

  jmp repea

  x3:

  cmp a,4dh ;列减一

  jne repea

  call y4

  jmp repea

  en:

  ret

  main endp

  ;-----------------------------------------------

  y1 proc near

  push ax

  push bx

  push dx

  mov ah,3

  int 10h

  mov ah,2 ;行减一

  dec dh

  int 10h

  pop dx

  pop bx

  pop ax

  ret

  y1 endp

  ;----------------------------------------

  y2 proc near

  push ax

  push bx

  push dx

  mov ah,3

  int 10h

  mov ah,2

  sub dl,2 ;列减一

  int 10h

  pop dx

  pop bx

  pop ax

  ret

  y2 endp

  ;--------------------------------------

  y3 proc near

  push ax

  push bx

  push dx

  mov ah,3

  int 10h

  mov ah,2

  inc dh ;行加一

  int 10h

  pop dx

  pop bx

  pop ax

  ret

  y3 endp

  ;----------------------------------------

  y4 proc near

  mov ah,3

  int 10h

  mov ah,2

  inc dl ;列加一

  int 10h

  ret

  y4 endp

  ;----------------------------------------------------

  clen proc near

  mov dh,1

  mov han1,25d

  cle:

  mov ah,2h

  mov dl,0

  int 10h

  mov ah,09h

  mov al,

  mov bl,90h

  mov bh,0h ;yan se

  mov cx,80

  int 10h

  inc dh

  dec han1

  cmp han1,01h

  jne cle

  ret

  clen endp

  ;-------------------------------------

  prognam ends

  end start