16个字节不是16×8个二进制数么 ?怎么五位一组呢?抱歉我实在混乱啊
追答你似乎混淆了几个概念:
1. 一个字节是8个二进制数没错。但是内存在编址的时候不是每个二进制数都有地址的。8个二进制数是一个字节,他有个地址。比如你这里面,第二小段00010H,这指的不是哪一个二进制数,它指的就是8个二进制数,00010H指的就是一个字节,也就是说8个二进制数合在一起用00010H来标识。
2.在汇编语言中,因为会用到10进制,二进制,16进制,所以规定,用D表示10进制,B表示二进制,H表示16进制。这里00010H 是一个16进制的数,写成二进制就是0000 0000 0000 0001 0000B,它表示的是内存中的一个存储单元。与这个内存单元中存放的是什么没有关系。就像人的名字一样,cpu用这个数来定位到内存中的一块区域。比如mov al,[00010H] cpu在执行这句指令时,就会去内存中找名称为00010H的内存单元。然后把这个内存单元存储的数复制到al中。
简单的说,字节是内存编址的最小单位,也是cpu对内存操作的最小单位
关于汇编语言存储器的分段 一小段的首地址是啥?段起始地址?怎么看出 ...
8086CPU的内存寻址方式是段地址*16+偏移地址的方式的方式 比如说00000H这个地址,他的段地址是0000H偏移地址是0000H。段地址0000h*16(10H)也就是00000H 加上偏移地址也是0000H就是00000H。一个段的空间最大是64KB 也就是偏移地址从0000H-FFFFH。有一点要注意:段地址*16必然是16的整数倍所以一个...
汇编中的首地址是什么意思?比如目的首地址?
首地址一般指一段数据的第一个数在存储器中的地址,比如:table:db 33h,22h,23h,42h...那么33h所在地址就是首地址。
汇编语言中,一般人说的第一个字节是从高位数起,还是低位数起?
汇编语言中,一般所说的第一个字节是指按照存贮地址偏移量最小的字节,对应数据的最低位字节;通信协议中,串行传输时,是从一个帧的首部开始依次传送,一般从高位数起;16位寄存器传输32位数值,根据32为数值的存储顺序,低位字在前,高位字在后,所以应该是先传低16位,后传高16位数据。
汇编语言中,一般人说的第一个字节是从高位数起,还是低位数起?
汇编语言中,一般所说的第一个字节是指按照存贮地址偏移量最小的字节,对应数据的最低位字节;通信协议中,串行传输时,是从一个帧的首部开始依次传送,一般从高位数起;16位寄存器传输32位数值,根据32为数值的存储顺序,低位字在前,高位字在后,所以应该是先传低16位,后传高16位数据。
汇编语言中,为什么经常要求数据段的起始地址必须为16的倍数?
段起始地址是20位二进制,想要把20位的地址放入16位的寄存器,并且能寻址整个内存空间,所以设计者考虑把20位中高16位放入,这样习惯上把段的起始地址放在低4位为0的位置上XXXXXXXXXXXXXXXX0000,这是20位二进制地址,你看看这个地址是不是被16整除。当然这不是必须,原则上段可以放在任何空间。
汇编语言中数据段与偏移的问题
段地址*16”的值为16(即10H)的倍数,即 20000H - FFF0H = 10010H 10010H\/10H = 1001H 此时“段地址*16”取得最大值10010H;所以段地址能取得的最大值是1001H 最大 当偏移量为0000H时,SA可取最大值 20000H - 0000H = 20000H 20000H\/10H = 2000H ...
汇编语言中,堆栈段是否只能定义大于16个字节大小的空间,能否定义少于1...
在 8088\/8086 系统中,每个段最小是16字节,最大是64K字节。选用不同的大小范围,都要以 16 字节的整数倍进行。因为,在计算物理地址的时候,有一个““段地址乘以16””的步骤。
关于汇编语言的一道简单题
PARTNO DW ? 这一句是定义内存空间,占用一个字,即两个字节 PNAME DB 16 DUP(?)这一句是定义16个字节内存空间。COUNT DD ? 这一句是定义一个双字占4个字节内存空间.PLENTH EQU $-PARTNO 这一句是定义一个常数PLENTH,它的大小等于当前地址-PARTNO地址 也就等于2+16+4=22,其中$代表当前地址...
汇编语言 物理地址问题
这个答案是错误的,正确的是:7E814H。1、先计算数据区末字的偏移地址 16个字占20H字节的内存空间,0DDF6H+20H=DE16H,这是末字数据后面的偏移地址,末字的偏移地址为DE16H-2=DE14H。2、再计算末字的物理地址 物理地址=段地址*10H+偏移地址=70A0H+DE14H=7E814H。
汇编语言中定义的数据段的问题
类型 常量 那么结果就是把常量的值赋给变量。如果是这种形式:变量名1 dw 变量名2 那么结果就是变量名1 = 变量名2在段内的偏移地址。如果是这种形式:变量名1 dd 变量名2 那么结果就是变量名1的高16位是变量名2的段地址,低16位是变量名2在段内的偏移地址。就是这么规定的,记住就行了。