汇编实验题之用表格形式显示ASCII字符

实验题目_用表格形式显示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 寄存器的原始内容。

四、实验程序

prognamsegment

main   proc  far

    assume cs:prognam

start:

      mov  ah, 02h

      mov  dl, 10h ;设置初始输出为ASCII的10h

      mov  bl, 15 ;输出显示为15行

   e:

      mov  cx, 16;设置循环次数,16,表示输出显示为16列

 

   l:

      int  21h ;显示输出

     push  dx ;推入堆栈

      mov  ah, 02h

      mov  dl, 0

      int  21h

      mov  ah, 02h

      mov  dl, 0

      int  21h ;显示空白符

      pop  dx ;将栈顶元素推出

      inc  dl ;设置下一个元素

      loop l ;循环输出每行的16个ASCII元素

      push dx ;将下一行的首元素推入堆栈

      mov  ah, 02h

      mov  dl, 0dh                             

      int  21h

      mov  ah, 02h

      mov  dl, 0ah

      int  21h ;输出换行

      pop  dx ;将栈顶元素推出

      dec  bl

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

      jne  e ;若还未完成输出,则跳转至e,继续进行下一行元素的输出

      je   exit ;否则退出程序

 

exit:

      mov  ax, 4c00h

      int  21h

 

main     endp

prognam  ends

   end  start

五、调试结果

 

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小巫技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值