十六进制ASCII和十六进制数字的表示形式有什么区别

时间:2018-09-28 14:32:38

标签: variables assembly

我有两个问题:

  1. 十六进制ASCII和十六进制数字在表示形式上有什么区别?

我的意思是当我们说

var db 31H

如何确定要说字符a还是要说数字31H。

  1. 为什么这个应用程序会这样?

    1- a db 4 dup(41h)

    2- b dw 2 dup(4141h)

我以为这两行将以相同的方式运行,但是在第二行中,当我想查看变量时,它们将是8个8位,而每一个都是41h。

但这一定是有问题的,因为dw是2 8位,而我们说是2由8位组成,它必须是4 8位而不是8 8位。

1 个答案:

答案 0 :(得分:2)

第一个问题的答案很简单:在计算机的内存中,没有ASCII,没有数字,没有图像……只有位。 31H代表位00110001的字符串;仅此而已。

只有当您对这些位进行某些操作(将它们显示在屏幕上,在数学运算中使用它们等)时,您才将其解释为含义1(在ASCII中会这样) ,或a(采用其他字符编码)或49(作为十进制数字)或调色板中特定的蓝色阴影。