ASCII 字元表

本文详细介绍了ASCII码的三个组成部分,包括用于通讯控制的第一部分、显示字符的第二部分以及IBM定义的扩充字符第三部分。
 ASCII 碼大致可以分作 三部分組成。

第一部分由 00H 到 1FH 共 32 個,一般用來通訊或作為控制之用,有些字元可顯示於螢幕,有些則無法顯示在螢幕上,但能看到其效果(例如換行字元、歸位字元)。如下表:

ASCII 表(0到1FH)

第二部分是由 20H 到 7FH 共 96 個,這 95 個字元是用來表示阿拉伯數字、英文字母大小寫和底線、括號等符號,都可以顯示在螢幕上。如下表:

ASCII 碼字元 ASCII 碼字元 ASCII 碼字元 ASCII 碼字元
十進位十六進位 十進位十六進位 十進位十六進位 十進位十六進位
032 20     056 38 8   080 50 P   104 68 h
033 21 !   057 39 9   081 51 Q   105 69 i
034 22 "   058 3A :   082 52 R   106 6A j
035 23 #   059 3B ;   083 53 S   107 6B k
036 24 $   060 3C <   084 54 T   108 6C l
037 25 %   061 3D =   085 55 U   109 6D m
038 26 &   062 3E >   086 56 V   110 6E n
039 27 '   063 3F ?   087 57 W   111 6F o
040 28 (   064 40 @   088 58 X   112 70 p
041 29 )   065 41 A   089 59 Y   113 71 q
042 2A *   066 42 B   090 5A Z   114 72 r
043 2B +   067 43 C   091 5B [   115 73 s
044 2C ,   068 44 D   092 5C /   116 74 t
045 2D -   069 45 E   093 5D ]   117 75 u
046 2E .   070 46 F   094 5E ^   118 76 v
047 2F /   071 47 G   095 5F _   119 77 w
048 30 0   072 48 H   096 60 `   120 78 x
049 31 1   073 49 I   097 61 a   121 79 y
050 32 2   074 4A J   098 62 b   122 7A z
051 33 3   075 4B K   099 63 c   123 7B {
052 34 4   076 4C L   100 64 d   124 7C |
053 35 5   077 4D M   101 65 e   125 7D }
054 36 6   078 4E N   102 66 f   126 7E ~
055 37 7   079 4F O   103 67 g   127 7F

第三部分由 80H 到 0FFH 共 128 個字元,一般稱為『擴充字元』,這 128 個擴充字元是由 IBM 制定的,並非標準的 ASCII 碼。這些字元是用來表示框線、音標和其他歐洲非英語系的字母。

ASCII 碼(80H到0FFH)
编写显示ASCII的汇编程序是一个有趣的任务,它涉及字符编码、循环结构以及屏幕输出等基础内容。下面将为您简要说明如何通过汇编语言完成这一目标,并给出关键步骤。 ### 关键点解析 #### 1. ASCII 码范围 标准ASCII码从0到127共包含128个字符。如果需要展示扩展ASCII,则可以考虑0至255之间的所有值。 #### 2. 循环控制 我们需要用循环依次遍历指定范围内每一个整数对应的ASCII字符并将其打印出来。例如,在x86架构下常用寄存器来保存当前迭代次数及数据。 #### 3. 屏幕输出函数 利用系统调用或BIOS中断服务(如INT 21H)把准备好的字符送到显示器上呈现给用户查看结果。 --- 以下是基于DOS环境下的简单示例代码片段: ```asm .model small .stack 100h .data msg db "ASCII Table:", 13, 10, "$" .code main proc ; 初始化段地址和偏移量 mov ax, @data mov ds, ax ; 打印标题信息 lea dx, msg mov ah, 9 int 21h ; 设置初始值 (从空格 ' ' 开始) mov dl, 32 ;; DL 存储当前欲打印之字元 print_loop: cmp dl, 127d ;; 判断是否超出界限 jg end_program ;; 显示单个字符 mov ah, 2 ;; DOS 函数号 - 输出字符 int 21h ;; 调用 INT 21H 中断 ;; 换行处理... mov dl, 13 mov ah, 2 int 21h mov dl, 10 mov ah, 2 int 21h ;; 增加下一个字符 inc dl jmp print_loop end_program: mov ah, 4Ch ;; 结束程序返回操作系统 xor al, al int 21h ;; main endp end main ``` 此程序会逐一遍历从第`32`(十进制)`=`(`空白`) 至 `127`, 并逐一呈现在屏幕上每个相应的可打印符号旁边加上换行符使得更易于观察。 --- **注意事项** - 上述例子适用于实模式下的 x86 CPU 和 MS-DOS 或兼容的操作系统环境下运行。 - 如果您想进一步增强功能还可以添加十六进制数值对应关系或者其他形式美化版面布局比如分列排列等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值