a的ASCII值-----汇编语言

STACK1 SEGMENT STACK            ;堆栈段开始

     DW 256 DUP(?)

STACK1 ENDS

DATA SEGMENT               ;数据段开始

     MES DB 'Press any key to exit!',0AH,0DH,0AH,0DH,'$'

    MES1 DB 'Show a as hex:',0AH,0DH,'$'

     SD DB 'a'

 DATA ENDS

 CODE SEGMENT               ;代码段开始

     ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA          ;设置 DS 寄存器

      MOV DS,AX

      MOV DX,OFFSET MES     ;取字符串首地址,显示退出提示

      MOV AH,09H              ; DOS 界面显示字符串

      INT 21H

      MOV DX,OFFSET MES1    ;取字符串首地址,显示字符串

     MOV AH,09H

      INT 21H

      MOV SI,OFFSET SD

      MOV AL,DS:[SI]          ;把’a’送到 AL

      AND AL,0F0H            ;取字节的高 4

      MOV CL,4

      SHR AL,CL

      CMP AL,0AH             ;判断是否是 A 以上的数

      JB C2

      ADD AL,07H             ;大于等于 A,数值加 7H

 C2: ADD AL,30H               ;数值加 30H,转换成 ASCII

     MOV DL,AL

     MOV AH,02H              ;将转换的相应 ASCII 码在 DOS 界面下显示

     INT 21H

     MOV AL,DS:[SI]

      AND AL,0FH              ;取字节的低 4

     CMP AL,0AH

     JB C3

     ADD AL,07H

 C3: ADD AL,30H

     MOV DL,AL              ;显示字符

     MOV AH,02H

     INT 21H

 KEY: MOV AH,1              ;判断是否有按键按下?

     INT 16H                 ;(为观察运行结果,使程序有控制的退出)

     JZ KEY

     MOV AX,4C00H          ;结束程序,退出

      INT 21H

 CODE ENDS

 END START

猜你喜欢

转载自blog.csdn.net/wanwu_fusu/article/details/83216771