Ⅰ 立即寻址方式中物理地址值怎么算
你说的是汇编里面的立即数寻址吧。即 MOV EAX,0FFH之类的
好像不会涉及到物理地址,因为这个数0FFH是在代码段中的,不是在内存中的。就是说在OFFH中不存在物理地址。如果说OFFH在那个地方,应该在数据段中指令代码中。
Ⅱ 源操作数为立即数寻址的物理地址怎么求 基址变址的物理地址怎么求
你好
1 寄存器间接寻址
2 基址-变址相寻址
3 ?
Ⅲ 8086/8088有哪些寻址方式如果操作数在内存中,如何确定其物理地址
摘要 指令结构
Ⅳ 立即数寻址的有效地址和物理地址分别是怎么求的
16位的方法
楼下说了
段基地址*16+段内偏移
32位是平坦寻址,直接给出32位虚拟地址,要找到物理地址那在ring3权限是不可能的
Ⅳ 汇编语言 物理地址问题
这个答案是错误的,正确的是:7E814H。
1、先计算数据区末字的偏移地址
16个字占20H字节的内存空间,0DDF6H+20H=DE16H,这是末字数据后面的偏移地址,末字的偏移地址为DE16H-2=DE14H。
2、再计算末字的物理地址
物理地址=段地址*10H+偏移地址=70A0H+DE14H=7E814H。
Ⅵ 汇编语言寻址方式以及物理地址
1.直接将0ABH放入AX寄存器2.直接将BX寄存器数据放入AX寄存器3.默认寻址方式,将段地址2000H(DS寄存器)放入AX寄存器4.指定寻址方式,以BX寄存器内容为段地址SI寄存器为偏移地址的数据放入AX寄存器里。段地址加偏移地址等于物理地址,列:段地址2000H进一位等于20000H加偏移地址0001H等于物理地址20001H。具体的忘了,你可以看一下王爽的书,里面有的
Ⅶ 立即寻址方式中,怎样确定操作数的物理地址
w物理地址是由段地址和偏移地址构成的,段地址左移4位再加上偏移地址。0ABH是偏移地址,段地址是默认的,例如,段地址是6000H 偏移地址是3000H 哪么物理地址是60000+3000=63000.
Ⅷ 微机原理寻地址方式和求物理地址。
mov es:[si], ax 中目的操作数为 寄存器间接寻址,其物理地址=es*16(即左移4位)+si=20000h+0200h=20200h 。
从已有条件看,ax 为源操作数,但其 未知。
Ⅸ 微机原理问题:请问立即寻址方式是否需要计算物理地址
立即数保存在程序本身当前命令处,调用起来无需多虑,除非你想跳过立即数寻址其他,用立即数占用字节量换算一下就行了。
Ⅹ 什么是逻辑地址什么是物理地址在实模式下,如何求存储器的物理地址假设一个
逻辑地址和物理地址的区别是:
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。
虚拟内存(Virtual Memory)是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限内存资源的系统上实现。一个很恰当的比喻是:你不需要很长的轨道就可以让一列火车从上海开到北京。你只需要足够长的铁轨(比如说3公里)就可以完成这个任务。采取的方法是把后面的铁轨立刻铺到火车的前面,只要你的操作足够快并能满足要求,列车就能象在一条完整的轨道上运行。这也就是虚拟内存管理需要完成的任务。在Linux 0.11内核中,给每个程序(进程)都划分了总容量为64MB的虚拟内存空间。因此程序的逻辑地址范围是0x0000000到0x4000000。有时我们也把逻辑地址称为虚拟地址。因为与虚拟内存空间的概念类似,逻辑地址也是与实际物理内存容量无关的。 逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。