汇编实验:用表格形式显示ASCII码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验题目_用表格形式显示ASCII字符SMASCII _ 一、实验目的

学习用汇编语言设计与编写循环程序

二、实验要求

按15行X16列的表格形式显示ASCII码为10H一100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII为0)隔开。

三、实验提示

(1)显示每个字符可使用功能号为02 的显示输出功能调用,使用方法如下:

mov ah,02h mov dl,输出字符的ASCII 码int 21h

(2)显示空白符时,用其ASCII 码0 置入dl 寄存器。每行结束时,用显示回车(ASCII 为0dh)和换行符(ASCII为0ah)来结束本行并开始下一行。

(3)由于逐个显示相继的ASCII 字符时,需要保存并不断修改dl 寄存器的内容,而显示空白、回车、换行符时也需要使用dl寄存器,为此可使用堆栈来保存相继的ASCII字符。具体用法是:在显示空包或回车、换行符前用指令

Push dx

把dl 的内容保存到堆栈中去。在显示空白或回车、换行符后用指令

Pop dx

恢复dl 寄存器的原始内容。

四、实验程序

program SEGMENT

main PROC FAR

ASSUME CS:program

start:

MOV AH,02h

MOV DL,10h;设置初始输出为ASCII的10h

MOV BL,15;输出显示为15行

let0:

MOV CX,16 ;设置循环次数,16表示输出显示为16列let1:

INT21h;显示输出

PUSH DX ;推入堆栈

MOV AH,02h

MOV DL,0

INT21h

MOV AH,02h

MOV DL,0

INT21h;显示空白符

POP DX ;将栈顶元素推出

INC DL;设置下一个元素

LOOP let1 ;循环输出每行的16个ASCII元素

PUSH DX;将下一行的首元素推入堆栈

MOV AH,02h

MOV DL,0dh

INT21h

MOV AH,02h

MOV DL,0ah

INT21h;输出换行

POP DX;将栈顶元素推出

DEC BL

CMP BL,0;比较确定是否已经输出15行元素

JNE let0 ;若还未完成输出,则跳转至e,继续进行下一行元素的输出JE exit ;否则退出程序

exit:

MOV AH,01h

INT21h

MOV AX,4ch

INT21h

main ENDP

program ENDS

END start

五、调试结果

相关文档
最新文档