在汇编中,在data段,定义一个数据,是要明确是字节db,字还是字dw
db 0x55
dw 0xaa55
数据的取值都是有大小的。 如从内存地址中取出一个字节,必须在地址前面明确byte
Mov byte[0x1234], 'P'
c语言是从汇编发展而来,使用数据也是要明确数据的大小。非常明显的参考的汇编的label的使用。
汇编
name: db ‘H’
在汇编中name代表一个字节大小的”H”的地址,一个字节是由db明确定义。寄存器要取出“H”,
Mov byte[name], ‘H’
C语言:
Char name;
name=‘H’
在C语言中,name也是代表一个字节大小,由char来明确定义。如果要使用这个字符,直接使用name, 如果要取得name的地址,那么就要使用&name
C语言常用的数据类型
Char 1个字节
Short 2个字节
Int 4个字节
long 8个字节
测试代码:(sizeof是得到其大小)
#include <stdio.h>
typedef int INT32;
typedef unsigned char BYTE;
int main()
{
INT32 i32;
BYTE b;
printf("%d, %d\n", sizeof(INT32), sizeof(i32));
printf("%d, %d\n", sizeof(BYTE), sizeof(b));
return 0;
}
测试结果