汇编分为几种,请问我以下的代码操作的是物理内存还是虚拟内存

usershane 发布于 2013/11/20 13:59
阅读 696
收藏 1
assume cs:codesg
codesg segment
    mov ax,2000H
    mov ds,ax
    mov bx,1000H
    mov [bx],ax
    inc bx
    mov [bx],ax
    inc bx
    inc bx
    mov [bx],ax
    inc bx
    mov [bx],ax
    inc bx
    mov [bx],ax

    mov ax,4c00H
    int 21H
codesg ends

end

这个操作的是物理内存吗?

加载中
0
泡不烂的凉粉
泡不烂的凉粉
int 21H 从这点可以判断是dos中断调用. 程序要想活动, 必须有dos环境. 明显是一个dos程序.对于地址, 都是真实的物理地址, 到底是对应的是真实的哪段地址, 这个还真不知道. 总之,cpu指令都是对真实地址的操作. 
usershane
usershane
对应的地址是不是CS:IP两个寄存器的地址吧,
0
LinkLook
LinkLook
我的观点:如果是运行在操作系统之上,就是虚拟内存,如果是跟操作系统平级,就是物理内存。
0
进击的企鹅
进击的企鹅
这段代码明显跑在实模式下,分页啥都没开启,显然操作的是物理内存
0
usershane
usershane

引用来自“hml1006”的答案

这段代码明显跑在实模式下,分页啥都没开启,显然操作的是物理内存
我也是这样想的,可是没有办法证实!
0
n
norman33
没说平台 没说编译环境 无法判断是实模式还是保护模式 甚至有些平台上没有保护模式的 说不定这段代码也能跑
usershane
usershane
WIN7 MASMPlus
0
修改登录密码
修改登录密码
这段代码在DOS窗口下也能跑吧
0
0
中山野鬼
中山野鬼
汇编中的地址,就没有物理地址的概念。哈。都是逻辑的地址。无非是结构性的还是线性平面的。
0
n
norman33

win7的话我觉得是在访问虚拟地址 你要直接访问物理地址的话不能在用户态

0
通吃岛-低手哥
通吃岛-低手哥
最终操作的都是物理内存, 哪来的“虚拟”内存。32位寄存器可以直接寻址4G地址,就不需要段寄存器了。最终都要映射到实际的地址上来。
usershane
usershane
那CPU的外部地址总线是多少位,如果是20位CPU怎么办!
返回顶部
顶部