资源描述:
《汇编语言编程实现ASCII码表的输出显示.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、题目:用汇编语言编程实现ASCII码表的输出显示要求:(1)对于无法显示的控制字符(02H,07H,08H,09H,0AH,0DH)用空格代替,(2)输出显示为16x16的矩阵,列优先,即同一行相邻字符的ASCII值相差10H,同一列相邻字符的ASCII值相差01H(3)同一行相邻字符用空格隔开源程序如下:方法一:DATASEGMENTDATAENDSSTACKSEGMENTSTACKDB10DUP(?)STACKENDSCODESEGMENTASSUMEDS:DATA,SS:STACK,CS:CODE
2、START:MOVAX,DATAMOVDS,AX;初始化DSMOVDH,0;要显示的ASCII码表的初始值MOVCX,10H;列计数器LL:MOVBL,10H;行计数器PUSHDX;把这一行第一个值压入堆栈,保护现场CMPDH,2JZTCMPDH,7JZTCMPDH,8JZTCMPDH,9JZTCMPDH,0AHJZTCMPDH,0DHJZTG:MOVDL,DH;显示ASCII码表中值为DH的字符MOVAH,2INT21HADDDH,10H;DH+10->DH,为下一个要显示的值DECBL;计数JZBB
3、;一行显示16个字符,显示完,跳转AA:MOVDL,'';每显示一个字符(行末字符除外),后跟着显示一个空格MOVAH,2INT21HJMPG;显示完空格,显示下一个字符T:MOVDL,'';要显示的值为2或7,8,9,0AH,0DH时,用空格代替MOVAH,2INT21HADDDH,10H;DH+10->DH,为下一个要显示的值DECBLJMPAA;跳转到AA,显示空格BB:CALLPPPP;一行显示完16个字符时,调用子程序,实现回车、换行POPDX;将堆栈中的值(上一行首值)弹出至DH,恢复现场I
4、NCDH;DH+1->DH,这行要显示的首值LOOPLL;从LL开始循环,实现剩余各行的显示M:MOVAH,4CH;程序结束,返回操作系统INT21HPPPPPROC;子程序MOVDL,0DH;回车MOVAH,2INT21HMOVDL,0AH;换行MOVAH,2INT21HRET;返回主程序PPPPENDPCODEENDSENDSTART方法二:DATASEGMENTQQDB2,7,8,9,0AH,0DHDATAENDSSTACKSEGMENTSTACKDB10DUP(?)STACKENDSCODESE
5、GMENTASSUMEDS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATAMOVDS,AX;初始化DSMOVDH,0;要显示的ASCII码表的初始值MOVCX,10H;列计数器LL:MOVBL,0FH;行计数器PUSHDX;把这一行第一个值压入堆栈,保护现场CALLMMMMAA:MOVDL,'';输出空格MOVAH,2INT21HADDDH,10H;DH+10->DH,为下一个要显示的值G:MOVDL,DH;显示ASCII码表中值为DH的字符MOVAH,2INT21HDECB
6、LJNZAA;跳转到AA,显示空格BB:CALLPPPP;一行显示完16个字符时,调用子程序,实现回车、换行POPDX;将堆栈中的值(上一行首值)弹出至DH,恢复现场INCDH;DH+1->DH,这行要显示的首值LOOPLL;从LL开始循环,实现剩余各行的显示MOVAH,4CH;程序结束,返回操作系统INT21HMMMMPROC;子程序1PUSHCXMOVCX,6MOVSI,OFFSETQQNN:CMPDH,[SI];判断是否等于2,7,8,9,0AH,0DHJZTRINCSILOOPNNMOVDL,D
7、H;显示ASCII码表中值为DH的字符MOVAH,2INT21HJMPTHTR:MOVDL,'';要显示的值为2或7,8,9,0AH,0DH时,用空格代替MOVAH,2INT21HTH:POPCXRETMMMMENDPPPPPPROC;子程序2MOVDL,0DH;回车MOVAH,2INT21HMOVDL,0AH;换行MOVAH,2INT21HRET;返回主程序PPPPENDPCODEENDSENDSTART