泰晓科技 -- 聚焦嵌入式 Linux - 追本溯源,见微知著!
网站地址:http://tinylab.org
微信公众号关注我们新浪微博


扫一扫

关注 @泰晓科技
赞助泰晓原创 ○ 在线实验Linux ○ 下载开源书籍
请稍侯

CS630 Qemu 汇编实验环境

通过 Qemu 学习旧金山大学的 CS630 汇编语言课程
Wu Zhangjin 创建于 2015/10/01

简介

该项目致力于通过 Qemu 学习旧金山大学的汇编语言课程 CS630

与此相关的是作者在大学二年级整理的《汇编语言 王爽著》,是一门基于 Windows 平台的汇编课程,而 CS630 是基于 Linux 平台的汇编课程。

CS 630: Advanced Microcomputer Programming (Fall 2008) 是我学过的最好的汇编语言课程,该课程针对 x86 架构, 为了更方便实验,我写了一系列脚本以便这些代码可以跑在 Qemu 上。

有了这些脚本,学生就可以很方便地在当前开发主机上实验,从而免去了不必要的重启,也避免了烧坏自己主机的风险。

这里为在线演示地址:

实验代码

实验环境

Cloud Lab 是泰晓科技开发的一套独立的虚拟实验环境,可快速构建和远程访问,方便企业和学校教学。

下载

$ git clone https://github.com/tinyclub/cloud-lab.git
$ cd cloud-lab && tools/docker/choose cs630-qemu-lab

安装

$ tools/docker/pull           # Pull from docker hub
or
$ tools/docker/build          # Build from source code

$ tools/docker/run            # 加载镜像,拉起一个 CS630 Qemu Lab 容器

实验

执行 tools/docker/vnc 后会打开一个 VNC 网页,根据 console 提示输入密码登陆即可,之后打开桌面的 CS630 Qemu Lab 控制台并执行:

$ make help
$ ./configure src/rtc.s
$ make boot

通过 Qemu 学 CS630

现在开学了,写了两个简单的文档: README.md 和 NOTE.md, 请参考它们做实验。

下面以 helloworld 和 rtc 为例展开:

Real Mode

  • helloworld

    $ ./configure src/helloworld.s
    $ make boot
    
  • rtc

    $ ./configure src/rtc.s
    $ make boot
    

Protected Mode

  • helloworld

    $ ./configure res/pmhello.s
    $ make pmboot
    
  • rtc

    $ ./configure res/rtcdemo.s
    $ make pmboot
    

演示图

下面是 rtcdemo 在 Qemu 上运行时的截图:

image

演示视频