谁能帮忙编一个 显示ASCII码字符表 的汇编程序啊?

显示ASCII码字符表
具体要求:
1)显示简易数字菜单
2)显示ASCII码字符表(20H-FFH)

这个是具体要求 希望高手帮助。

DATA SEGMENT
MENU DB '1--Show ASCII(20H-FFH) 2--Exit:','$'
BLANKLINE DB 80 DUP(' '),'$'
BUFF DB 3 DUP(?);用来存ASCII码值对应的字符串
DASH DB '-','$'
TAB DB ' ','$'
ASCII DB 20H
DATA ENDS

PRTSTR MACRO X;输出字符串
LEA DX,X
MOV AH,09H
INT 21H
ENDM

SETXY MACRO X,Y;设置光标位置,X=行,Y=列
XOR BH,BH
MOV AH,02H
MOV DH,X
MOV DL,Y
INT 10H
ENDM

EMPTYBUFF MACRO;清空ASCII码串
CLD
MOV AL,'$'
LEA DI,BUFF
MOV CX,3
REP STOSB
ENDM

TRANBUFF MACRO;转化ASCII码串
LOCAL L1,L2,L3,L4
CLD
MOV AL,ASCII
XOR AH,AH
MOV BL,16
DIV BL

LEA DI,BUFF
CMP AL,0AH
JB L1
ADD AL,37H
JMP L2
L1:
ADD AL,30H
L2:
STOSB
MOV AL,AH
CMP AL,0AH
JB L3
ADD AL,37H
JMP L4
L3:
ADD AL,30H
L4:
STOSB
ENDM

CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX

;设置80×25黑白字符显示模式
MOV AH,00H
MOV AL,02H
INT 10H

@@:
SETXY 0,0
PRTSTR BLANKLINE
SETXY 0,0
PRTSTR MENU;输出菜单

MOV AH,01H
INT 21H;获得用户输入

CMP AL,'1'
JB @B
CMP AL,'2'
JA @B

JZ DONE

SETXY 1,0
L1:
CMP ASCII,0
JZ @B
EMPTYBUFF
TRANBUFF
PRTSTR BUFF
PRTSTR DASH
MOV AH,02H
MOV DL,ASCII
INT 21H
PRTSTR TAB
INC BYTE PTR ASCII
JMP L1

DONE:
MOV AX,4C00H
INT 21H
CODE ENDS
END START
温馨提示:内容为网友见解,仅供参考
无其他回答

用汇编语言编写一个生成ASCII代码表的程序
♫ ☼1► ◄ ↕ ‼ ¶ § ▬ ↨ ↑ ↓ ← ∟ ↔ ▲ ▼ 2 ! " # $ % & ' ( ) * + , - . \/ 30 1 2 3 4 5 6 7 8 9 : ; < = > ?4@ A B C D E F G H I J K L M N O 5P Q R S T ...

编写一个生成ASCII码表的程序,并显示在屏幕上
ASCII db ' ASCII CODES TABEL $$',0 Code ends end start

.设计一个显示ASCII码的程序 说明:从键盘上按键,每按一个键,显示一个...
MOV DX, OFFSET MSG1 MOV AH, 9 ;9号功能调用,显示提示.INT 21H ;显示.MOV AH, 1 ;1号功能调用,键入、显示.INT 21H ;CMP AL, 13 JZ EXIT ;回车就结束.PUSH AX MOV AH, 2 MOV DL, 32 ;空格.INT 21H INT 21H POP AX CALL CHANUM ;...

编写一个汇编语言程序,将ASCII码位于10H~FFH对应的字符以15*16(行*...
inc dl ;ASCII码增1 loop Coloumn ;循环,准备显示下一个ASCII码字符 push dx mov dl,0dh ;一行显示完,输出一个回车符int 21h mov dl,0ah ;输出一个换行符 int 21hpop dx pop cx loop Line ;循环,准备显示下一行ASCII码字符 Exit_Proc: mov ah,4ch ;结束程序 int 21h Code ENDS END Start ;编译...

汇编 编程显示ASCII表中前20个字符
L1: MOV DL, BL ;装入一个字符ASCII代码 MOV AH, 2 INT 21H ;输出一个字符 MOV DL, 20H MOV AH, 2 INT 21H ;输出一个空格 INC BL ;准备下一个待输出的ASCII码 DEC CL ;列数计数 L11: JNZ L1 ;列数未满(本行未完),转L1继续 ;--- 打印一个字符的循环...

...由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。_百度知...
DATA2 DB 0AH,0DH,'THE ASCII OF THE :$'SD DB 'A'DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET DATA1 ;显示提示信息 MOV AH,09H INT 21H MOV AH,01H INT 21H MOV SI,OFFSET SD MOV [SI],AL MOV [SD],AL MOV DX,OFFSET ...

用汇编语言,将一个数字的ASCII码值显示出来
call htoasc 之后al里面应该是30H(这时候是对的,‘0’的ASCII码正是30H),然后又执行rol al,4,al变成03H了(结果已经错)。03H不是一个可显示字符,call dispc显示的结果当然不对,你应该把call htoasc 之后的rol al,4这行删掉。其实代码里面显示低位的时候就没有rol al,4 ...

...程序\\从键盘输入一个字符串将其每个字符的ASCII码显示在屏幕上_百度...
shl bx, 1 mov dx, tab[bx]mov ah, 9 int 21h mov ax, 4c00h Int 21h main endp ;将ASCII转换为二进制数 ;入口:AL存放ASCII ;出口:转换后数值在AL asc2bin proc sub al, 30h cmp al, 9 jbe next sub al, 7 next: ret asc2bin endp end...

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

用汇编编制程序实现二进制定点数与十进制数的ASCII码串之间转换,并将结...
用汇编编制程序。把二进制数转换为十进制,在屏幕上显示。程序如下:

相似回答