汇编语言实验报告1
一、实验内容:用表格形式显示ASCII字符
二、实验要求:15行×16列的表格形式显示ASCII码为10H—100H的所有字符,即以行为主的顺序及ASCII码递增的次序显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII0)隔开。
说明: 显示调用DOS中断功能02,先考虑显示单个字符,再进行循环,程序关键在于寄存器的使用和循环控制。
MOV AH,02H
MOV DL,10H      ; 输出要显示的符号的代码,放入DL寄存器
INT 21H
MOV AH,02H
MOV DL,0DH
INT 21H          ; 输出回车符
MOV AH,02H
MOV DL,0AH
INT 21H            ; 输出换行符
三、实验源代码如下:
DATAS SEGMENT
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV DX,10H                ;初植10H
    NEXT:
        MOV CX,10H            ;16列
    LOOP1:
     
        MOV AH,02H            ;显示输出DL字符
        INT 21H
       
        INC DX                  ;DX加1
        PUSH DX                ;把DX推进栈保存
        MOV DL,0              ;显示空白符
        INT 21H
       
        POP DX                  ;把DX之前的数取回来
ascii共有多少个字符
  LOOP  LOOP1                ;当CX=0时会自动跳出LOOP1循环
        PUSH DX                ;保存DX的数,即为了保存ASCII码
     
        MOV AH,02H
        MOV DL,0AH            ;显示换行字符
        INT 21H
       
        MOV AH,02H
        MOV DL,0DH            ;显示回车
        INT 21H
       
        POP DX                  ;把DX之前的数取回来
        CMP DX,100H            ;最后的字符的ASCII码为100H
        JB NEXT                ;小于时就会NEXT
       
        MOV AH,4CH            ;带返回码终止
        INT 21H
CODES ENDS
    END START
四、实验运行结果如下:(附截图)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。