当前位置:首页 > 微机实验模版
5.按6行×16列的格式顺序显示ASCII码为20H到7FH之间的所有字符,即每16个字符为一行,共6行。每行中相邻的两个字符之间用空格字符分隔开。试编写程序段并上机运行验证。提示:程序段包括两层循环,内循环次数为16,每次内循环显示一个字符和一个空格字符;外循环次数为6,每个外循环显示一行字符并显示一个回车符(0DH)和一个换行符(0AH)。
data segment data1 db 20h,95dup(0); add your data here! ends stack segment dw 128 dup(0) ends code segment
start: ; set segment registers: mov ax, data mov ds, ax mov es, ax mov si,0 input: mov al,data1+si inc al inc si mov data1+si,al cmp si,5fh jnz input ;以上程序段用来将要显示的字符存放在data1中 mov cl,6 mov si,0 oagain: ;外循环,共显示6行 mov di,10h iagain: ;内循环,每行显示16个字符 mov dl,data1+si mov ah,2 int 21h
mov ah,2 mov dl,' ' int 21h inc si dec di cmp di,0 jnz iagain mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h dec cl cmp cl,0 jnz oagain ; add your code here mov ax, 4c00h ; exit to operating system. int 21h ends
end start ; set entry point and stop the assembler.
四、 实验小结
1.说明系统功能调用的10号功能对键盘缓冲区格式上有何要求。 缓冲区在大小上要比将输入的字节所需的空间大两个字节,缓冲区的第一个字节为将输入的字节所需的空间,第二个字节为实际读入的字符个数(不包括回车符),从第三个字节开始为真正的缓冲区。 2.1、2、9、10号功能的输入输出参数有哪些?分别放在什么寄存器中? 1号功能为单字符输入功能 MOV AH,1 INT 21H 2号功能为单字符显示功能 MOV AH,2 MOV DL,<要显示的字符> 9号功能为字符串显示功能 LEA DX,STRING ;将字符串偏移地址付给DX字符串应以$结束 MOV AH,09H INT 21H
共分享92篇相关文档