ASCII 码的显示

ASCII 码的全称是 American Standard Code for Information Interchange,即美国信息交换标准码。

刚开始制定的时候,因为当时的存储空间的成本很高,故此采用了 7 位二进制数字,仅仅包括了 128 个字符,

1981 年才出现了 8 位的 IBM PC ROM 的字符集,即 IBM 扩展字符集,又称为“扩展 ASCII 码”。

在扩展 ASCII 码中,共包括了 256 个字符,其中的低 128 个,和原来的 ASCII 码相同;而高 128 个是表格符。

在当前的汉字操作系统里面,都使用了高 128 个作为汉字,所以在显示这些表格符的时候,会显示成“乱码”。

要想清楚的看到这些表格符,必须在 Windows 的 DOS 界面中,并且在两个表格符号中间加上空格,这时才会正常显示。

显示 256 个 ASCII 码的画面如下:

 ASCII 码的显示 - 非著名博主 - 电子信息角落


这个显示画面,其实还是有不足的,因为有些 ASCII 码,是属于控制符的,输出到屏幕时,它就会起控制作用,并不显示符号。

这些控制符号列出如下:

    07H : BEL (bell) 响铃,这个符号,不显示,只是使得屏幕响了一声;

    08H : BS (backspace) 退格,这个控制符,使得光标左移一格,它左边的 07 本来就没有显示,这下就更往左移了;

    09H : HT (horizontal tab) 水平制表符,显示这个控制符的时候,光标会跳到 8 的整数倍的位置上;

    0AH : LF (NL line feed, new line) 换行,显示这个控制符的时候,光标会跳到下一行;

    0DH : CR (carriage return) 回车,显示这个控制符的时候,光标会跳到屏幕在最左边。

另外还有一些控制符,在操作系统中没有对应的显示符,所以是空白的。

;============================================

显示 ASCII 的汇编程序如下:

;---------------------------
DATA SEGMENT
    DB    ?
DATA ENDS
;---------------------------
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
    MOV  AX, DATA
    MOV  DS, AX
;---------------------------
    MOV  CX, 256
    MOV  DH, 0
LOP:
    TEST DH, 00001111B
    JNZ  NEXT           ;每行显示 16 个符号

    MOV  DL, 13         ;另起一行
    CALL DISP
    MOV  DL, 10
    CALL DISP

NEXT:   
    MOV  DL, DH
    CALL DISP

    MOV  DL,  ' '       ;两个字符之间,显示一个空格
    CALL DISP
    INC  DH
    LOOP LOP            ;循环 256 遍
;---------------------------
DONE:
    MOV  AH, 4CH
    INT  21H
;---------------------------
DISP PROC NEAR
    PUSH AX
    MOV  AH, 2
    INT  21H
    POP  AX
    RET
DISP ENDP
;---------------------------
CODE ENDS
    END START

;============================================

低 128 个 ASCII 码的说明如下(摘自网络):

;============================================

Bin         Dec    Hex   缩写/全部               说明
0000 0000     0     00   NUL (null)              空字符   
0000 0001     1     01   SOH (start of handing)  标题开始 
0000 0010     2     02   STX (start of text)     正文开始 
0000 0011     3     03   ETX (end of text)       正文结束
0000 0100     4     04   EOT (end of transmission) 传输结束 
0000 0101     5     05   ENQ (enquiry)           请求 
0000 0110     6     06   ACK (acknowledge)       收到通知 
0000 0111     7     07   BEL (bell)              响铃
0000 1000     8     08   BS (backspace)          退格 
0000 1001     9     09   HT (horizontal tab)     水平制表符 
0000 1010    10     0A   LF (NL line feed, new line) 换行
0000 1011    11     0B   VT (vertical tab)       垂直制表符 
0000 1100    12     0C   FF (NP form feed, new page) 换页
0000 1101    13     0D   CR (carriage return)    回车
0000 1110    14     0E   SO (shift out)          移出 
0000 1111    15     0F   SI (shift in)           移入 
0001 0000    16     10   DLE (data link escape)  数据链路转义 
0001 0001    17     11   DC1 (device control 1)  设备控制1 
0001 0010    18     12   DC2 (device control 2)  设备控制2 
0001 0011    19     13   DC3 (device control 3)  设备控制3 
0001 0100    20     14   DC4 (device control 4)  设备控制4 
0001 0101    21     15   NAK (negative acknowledge)  拒绝接收 
0001 0110    22     16   SYN (synchronous idle)      同步空闲 
0001 0111    23     17   ETB (end of trans. block)   传输块结束 
0001 1000    24     18   CAN (cancel)            取消
0001 1001    25     19   EM (end of medium)      媒体结束 
0001 1010    26     1A   SUB (substitute)        替换 
0001 1011    27     1B   ESC (escape)            退出 
0001 1100    28     1C   FS (file separator)     文件分割符 
0001 1101    29     1D   GS (group separator)    分组符 
0001 1110    30     1E   RS (record separator)   记录分离符 
0001 1111    31     1F   US (unit separator)     单元分隔符 

0010 0000    32     20   空格
0010 0001    33     21   !
0010 0010    34     22   "
0010 0011    35     23   #
0010 0100    36     24   $
0010 0101    37     25   %
0010 0110    38     26   &
0010 0111    39     27   '
0010 1000    40     28   (
0010 1001    41     29   )
0010 1010    42     2A   *
0010 1011    43     2B   +
0010 1100    44     2C   ,
0010 1101    45     2D   -
0010 1110    46     2E   .
0010 1111    47     2F   /

0011 0000    48     30   0
0011 0001    49     31   1
0011 0010    50     32   2
0011 0011    51     33   3
0011 0100    52     34   4
0011 0101    53     35   5
0011 0110    54     36   6
0011 0111    55     37   7
0011 1000    56     38   8
0011 1001    57     39   9
0011 1010    58     3A   :
0011 1011    59     3B   ;
0011 1100    60     3C   <
0011 1101    61     3D   =
0011 1110    62     3E   >
0011 1111    63     3F   ?

0100 0000    64     40   @
0100 0001    65     41   A
0100 0010    66     42   B
0100 0011    67     43   C
0100 0100    68     44   D
0100 0101    69     45   E
0100 0110    70     46   F
0100 0111    71     47   G
0100 1000    72     48   H
0100 1001    73     49   I
0100 1010    74     4A   J
0100 1011    75     4B   K
0100 1100    76     4C   L
0100 1101    77     4D   M
0100 1110    78     4E   N
0100 1111    79     4F   O

0101 0000    80     50   P
0101 0001    81     51   Q
0101 0010    82     52   R
0101 0011    83     53   S
0101 0100    84     54   T
0101 0101    85     55   U
0101 0110    86     56   V
0101 0111    87     57   W
0101 1000    88     58   X
0101 1001    89     59   Y
0101 1010    90     5A   Z
0101 1011    91     5B   [
0101 1100    92     5C   \
0101 1101    93     5D   ]
0101 1110    94     5E   ^
0101 1111    95     5F   _

0110 0000    96     60   `
0110 0001    97     61   a
0110 0010    98     62   b
0110 0011    99     63   c
0110 0100   100     64   d
0110 0101   101     65   e
0110 0110   102     66   f
0110 0111   103     67   g
0110 1000   104     68   h
0110 1001   105     69   i
0110 1010   106     6A   j
0110 1011   107     6B   k
0110 1100   108     6C   l
0110 1101   109     6D   m
0110 1110   110     6E   n
0110 1111   111     6F   o

0111 0000   112     70   p
0111 0001   113     71   q
0111 0010   114     72   r
0111 0011   115     73   s
0111 0100   116     74   t
0111 0101   117     75   u
0111 0110   118     76   v
0111 0111   119     77   w
0111 1000   120     78   x
0111 1001   121     79   y
0111 1010   122     7A   z
0111 1011   123     7B   {
0111 1100   124     7C   |
0111 1101   125     7D   }
0111 1110   126     7E   ~ 
0111 1111   127     7F   DEL (delete)  删除

;============================================

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值