BIN,BCD,ASCII码分别对应的Hex(16进制)数

BIN,BCD,ASCII码分别对应的Hex(16进制)数

  • 以十进制的 56 为例:

    • BIN 码

      • 对应二进制数为 0011 1000
      • 对应Hex数据为 0x38
      • BIN码就是二进制数;

    • 压缩BCD 码

      • 对应二进制数为 0101 0110
      • 对应Hex数据为 0x56
      • 压缩BCD 码:一个字节可存放一个两位十进制数,其中高四位存放十位数,低四位存放个位数;

    • 非压缩BCD 码

      • 对应二进制数为0000 0101 0000 0110
      • 对应Hex数据为 0x05 0x06
      • 非压缩BCD 码:一个字存放一个两位十进制数,其中高字节的低四位存放十位数,低字节的低四位存放个位数;

    • ASCII 码

      • 对应二进制数为0011 0101 0011 0110
      • 对应Hex数据为 0x35 0x36 (字符 ‘5’ ‘6’)
      • 字符‘0’对应的 16进制数为 0x30
      • ASCII 码:ASCII码是字符的表现形式,以8个Bit位来存贮一个字母(数字),所以说一个字母(数字)占用一个字节,一个汉字占用两个字节.

  • 欢迎纠正

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你好,我可以回答这个问题。以下是汇编语言源程序: ``` section .data ; 定义变量 ascii db 0 ; 存储输入的ASCII码 hex db 0 ; 存储转换后的16进制 error db -1 ; 存储特殊值-1 section .text global _start _start: ; 读取输入的ASCII码 mov eax, 3 ; 系统调用号,读取输入 mov ebx, 0 ; 文件描述符,标准输入 mov ecx, ascii ; 存储输入的变量 mov edx, 1 ; 读取的字节 int 0x80 ; 调用系统调用 ; 判断输入的ASCII码是否有对应16进制 cmp ascii, 0x30 ; 判断是否大于等于0x30 jl error ; 如果小于0x30,转换为特殊值-1 cmp ascii, 0x39 ; 判断是否小于等于0x39 jg check_uppercase ; 如果大于0x39,检查是否为大写字母 sub ascii, 0x30 ; 如果在0x30和0x39之间,转换为对应16进制 mov hex, ascii ; 存储转换后的16进制 jmp print_hex ; 跳转到输出16进制的代 check_uppercase: cmp ascii, 0x41 ; 判断是否大于等于0x41 jl error ; 如果小于0x41,转换为特殊值-1 cmp ascii, 0x46 ; 判断是否小于等于0x46 jg error ; 如果大于0x46,转换为特殊值-1 sub ascii, 0x37 ; 如果在0x41和0x46之间,转换为对应16进制 mov hex, ascii ; 存储转换后的16进制 jmp print_hex ; 跳转到输出16进制的代 error: ; 输出特殊值-1 mov eax, 4 ; 系统调用号,输出字符串 mov ebx, 1 ; 文件描述符,标准输出 mov ecx, error ; 存储特殊值-1的变量 mov edx, 2 ; 输出的字节 int 0x80 ; 调用系统调用 exit: ; 退出程序 mov eax, 1 ; 系统调用号,退出程序 xor ebx, ebx ; 返回值,0示成功 int 0x80 ; 调用系统调用 print_hex: ; 输出转换后的16进制 mov eax, 4 ; 系统调用号,输出字符串 mov ebx, 1 ; 文件描述符,标准输出 mov ecx, hex ; 存储转换后的16进制的变量 mov edx, 1 ; 输出的字节 int 0x80 ; 调用系统调用 jmp exit ; 跳转到退出程序的代 ``` 希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的小肥丸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值