大小端
mov byte [ds:mydata],0x1A
mov word
[ds:mydata],0x1234
07C0B | 07 |
07C0A | C0 |
07C09 | E8 mov ax,0x07c0 |
07C08 | 00 |
07C07 | 00 |
07C06 | 00 |
07C05 | 00 |
07C04 | 00 |
07C03 | 00 |
07C02 | 00 jmp near mycode |
07C01 | 06 |
07C00 | E9 |
大端模式:数据高位在内存低位,数据低位在内存高位。
小端模式:数据低位在内存低位,数据高位在内存高位。
内存地址 | 小端模式 | 大端模式 |
07C04 | 0x12 | 0x34 |
07C03 | 0x34 | 0x12 |
内存地址 | 小端模式 | 大端模式 |
07C03 | 0x34 | 0x12 |
07C04 | 0x12 | 0x34 |
在现在的电脑上,绝大多数应用程序采用的都是小端模式。
如果是手机上的应用绝大多数,都是大端模式。
大端模式和小端模式,并不是CPU架构决定的,而是编译器编译决定的。
至于为什么?
跟汽车方向盘的位置一样,有的国家设计在汽车左边,有的设计在汽车右边。
在现在的电脑上,绝大多数应用程序采用的都是小端模式。
如果是手机上的应用绝大多数,都是大端模式。
根据我在网上查阅的资料。
到底一个程序在内存是大端还是小端,取决于CPU的架构设计。
有的CPU既支持大端,也支持小端。