看板Programming
标 题Re: 烦请推荐「初学者」适用的组合语言好书
发信站中央大学松涛风情资讯站 (Sun Feb 4 01:20:13 2007)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ncu!news.csie.ncu!Evergreen
> ==>发信人: [email protected] ( ), 信区: programming
> ※ 引述《[email protected] (try or test)》之铭言:
> : 请教一下, 所谓对 I/O devices 下指令, 是指组语的那类指令会
> : 跳出讯息说还没实作 ?
> : 1. in reg, port
> : out reg, port
> : 2. move reg, memory-map-i/o-port
> : 3. move memory-pointer-space, memory-map-i/o-pointer-space
> : 4. BIOS int xx
> : 5. system call for I/O device
> : 先谢谢 !
> 跟哪类指令其实无关 (如何送命令给 I/O devices 不是重点),
> 主要是 VMWare 里看到的 hardware devices 其实都是软体模拟的
> (而且跟有没有选项能对应到实体设备无关),
> 换言之你能对这些 devices 下的命令相当有限,
> 这个部分的限制取决於 VMWare 本身对该模拟设备的实作程度,
一个 Machine 由 processor , memory, I/O device 及 console
组成. I/O device 就像 display , floppy disk , Hard disk , CD,
Audio , ethernet 等.
VMware 不同於 VMM(VM Monitor) 的作法, 是在 native OS 之上执行.
安装 guest OS 时, 安装程式需要查明有那些 I/O device , VMware
负责答覆模拟的 I/O device 供其安装, 这些模拟的 I/O device 会
对应到 native OS 管理的实体资源, 而且由 guest OS 管理与使用.
> 不过只要是「做正常的事」的 I/O devices 命令,
> 都已经有 implement 了,
> 但如果你叫学生在 windows 95 上写个类似 CloneCD 的软体,
> 那恐怕 VMWare 的表现会让你失望。
练习组语可能最重要的练习之一是用组语控制一个 简易的硬体介面卡,
VMware 应该是让 guest OS 执行於 user mode , 所以执行 guest OS
时的指令若发生 access 不配属给该 user(guest OS) 的 I/O 与
memory space , 应该会产生 trap , 再送交给 VMware 接手. 如果是
要接取模拟的 I/O device 自然是由 VMware 处理, 但如果是 Access
一个不模拟的 I/O device(如简易的硬体介面卡), VMware 如果不 by
pass 转达这个接取, 反而是拦下给 error message , 就会让 guest
OS 无法控制或管理这个装置, 这跟练习组语的目标(跟测试 OS 功能
几乎是相同的作用)就违背了.
非模拟对应的 I/O device , guest OS 接取时, VMware 如何回
应, 是 By-pass 转送 或 阻止不转反而回应成 error message , 这
两者应该是设计成可调整的设定才是.
--
◎ Origin: 中央松涛站□bbs.csie.ncu.edu.tw From: 140.115.6.234