汇编语言,设计一个按表格形式显示ASC||码为10H—100H的所有字符的程序。要完整的哦

按15行*16列的表格形式显示ASC||码为10H----100H的所有字符,即以行为主的顺序及ASC||码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASC||为0)隔开。
(1) 显示每个字符可使用功能号为02的显示输出功能调用,使用方法如下:
mov ah,02h
mov al,输出字符的ASC||码
int 21h
本题中可把dl 初始化为10H, 然后不断使其加1(用INC指令) 以取得下一个字符的ASC||码。
(2) 显示空白符时,用其ASC||码0置入dl 寄存器,每行结束时,用显示回车(ASC||为0dh)和换行符(ASC||为oah)来结束本行并开始下一行。
(3) 由于逐个显示相继的ASC||字符时,需要保存并不断修改dl寄存器的内容,而显示空白、回车、换行符时也需要使用dl寄存器,为此可使用堆栈来保存相继的ASC||字符。具体用法是:在显示空白或回车,换行符前用指令
push dx 把dl 的内容保存到堆栈中去。在显示空白或回车,换行符后用指令
pop dx 恢复dl寄存器的原始内容。

第1个回答  推荐于2016-10-29
stack segment stack
db 100 dup (?)
stack ends

code segment
assume cs:code,ss:stack
start:
mov dl,10h
mov cl,0fh

loopc:
mov ah,02h
mov al,dl
int 21h

inc dl
push dx
mov dl,0h

mov ah,02h
mov al,dl
int 21h

pop dx

loopnz loopc

push dx
mov dl,0dh

mov ah,02h
mov al,dl
int 21h

mov dl,0ah

mov ah,02h
mov al,dl
int 21h

pop dx

mov cl,0fh

cmp dl,0h
jne loopc

mov ah,4ch
int 21h
code ends
end start本回答被网友采纳

编写一个汇编语言程序,将ASCII码位于10H~FFH对应的字符以15*16(行*...
CMP BX,10H JNZ B SUB BX,BX PUSH DX MOV DL,0DH INT 21h MOV DL,0AH int 21h POP DX B: LOOP LP MOV AH,4CH INT 21H CSEG ENDS END START 我有很多种方法,这一种代码最短。。lz是大2的吧,这个实验我几个星期前做过。。这些实验还是自己做下比较好。要是实在做不出,再看看别人...

用表格形式显示ASCII字符SMASCII的程序是什么
void main (int argc, char *argv[]){ char nameout[72];int i,j,k=0;strcpy(nameout,"ASCII_TABLE.TMP");if ( (fout = fopen(nameout,"wb") ) == NULL ) { printf("\\007Cann't open output file: %s ", nameout);exit(1);};k = 0;for (j= 0x10; j <= 0x100 ;...

汇编语言高手帮忙编一个大作业呀!江湖救急!
DATE PROC NEAR ;显示日期子程序 DISPLAY:MOV AH,2AH ;取日期 INT 21H MOV SI,0 MOV AX,CX MOV BX,100 DIV BL MOV BL,AH CALL BCDASC1 ;日期数值转换成相应的ASCII码字符 MOV AL,BL CALL BCDASC1 INC SI MOV AL,DH CALL BCDASC1 INC SI MOV AL,DL CALL BCDASC1 MOV ...

汇编语言程序编写 内存中以TAB单元开始的区域连续存放着一个ASCII字 ...
tab dec bxl1: inc bx cmp byte ptr[bx],10 ;遇换行符结束扫描 je l3 cmp byte ptr[bx],'Q' ;检查是否Q je l2 jmp l1l2: inc byte ptr[x] ;空格计数 jmp l1l3: mov al,byte ptr[x] mov ah,0 mov cl,10 div cl mov byte ptr...

汇编如何显示ASCII码的扩展字符
“STRING DB 0DAH, 0C4H, 0BFH, '$'”这是 masm 为了防止数字(16进)和指令、虚拟指令、存储器混淆所作出的限制。例如 4ch, 这个 ch, 是指数字还是存储器呢,所有,如果你加个0在前面,写成 04ch, 它就可以分清楚了,也就是说 masm 是以 "0"作为是不是数字的辨别。

汇编语言程度题:从键盘上输入字符0~9,要求从屏幕上输出其ASCII值(使用...
INT 10H ;设置视频显示方式为80x25 16色文本方式 AcceptNum:LEA DX,Accept_Num ;提示输入一个1位数字符串地址 Call Get_Num ;从键盘接受一个数字 CMP Exit_Mark,1 JZ Exit_Proc ;若退出标志置位,则结束程序 MOV DigASCII,AL ;保存这个1位数 AND AL,0FH LEA BX,ASCII_Tab XLAT CBW MOV CX...

汇编程序
Start: push cs pop ds ;使数据段与代码段同段 mov ax,3 ;设置25*80字符显示方式 int 10h Output Prompt_Menu ;显示主菜单 xor bx,bx mov ah,3 int 10h mov Cursor_Tmp,dx mov ax,0b800h mov es,ax ;设置字符显示方式缓冲区段地址 mov di,35*2+1 mov al,13 ;LightMagenta mov cx,10...

汇编 自然数1加到100的和,求教结果显示的问题
给你个提示,先把5050中的每一位当成一个字符,转换成ASC码值,最后再输出到屏幕上

用汇编语言编写一个时钟程序,能显示时分秒的,还要有秒表就是计时器的...
DATE PROC NEAR ;显示日期子程序 dis:MOV AH,2AH ;取日期 INT 21H MOV SI,0 MOV AX,CX MOV BX,100 DIV BL MOV BL,AH CALL BCDASC1 ;日期数值转换成相应的ASCII码字符 MOV AL,BL CALL BCDASC1 INC SI MOV AL,DH CALL BCDASC1 INC SI MOV AL,DL CALL BCDASC1 MOV BP...

用C语言编写一段程序,要求:输入一段字符,分别统计出其中的英文字母、空...
你好!给你一个程序,你试试吧,有问题再问 include <stdio.h>#include <string.h>main(){char c[20];int i=0,j=0,k=0,l=0,h=0;printf("请输入一个字符串:");gets(c); for(i=0;i<=strlen(c);i++){if(c[i]>='0'&&c[i]<='9')j++;if((c[i]>='a'&&c[i]<=...

相似回答