第六章 名词解释: 机器语言(machine language):由计算机直接使用的二进制编码指令构成的语言。 汇编语言(assembly language):一种低级语言,用助记码表示特定计算机的机器语言指令。 汇编器(assembler):把汇编语言程序翻译成机器代码的程序。 汇编器指令(ass ...
分类:
其他好文 时间:
2019-10-22 22:17:51
阅读次数:
120
原来CPU寄存器分为两类:
用户可见寄存器,用户可以对这些寄存器进行编程,还可以通过优化使CPU因使用这类寄存器而减少对主存的访问次数,也就是说我们使用汇编语言可以直接对其操作;
控制和状态寄存器,用户不可对其进行编程,他们被控制部件使用,以控制CPU的操作,也可以被带有特权的操作系统程... ...
分类:
系统相关 时间:
2019-10-22 18:07:38
阅读次数:
116
有些操作非要使用汇编语言不可,比如想获取 CPU 的信息,必须用 CPUID 指令,但是64 位的微软编译器都不再允许内嵌汇编了,这可怎么办呢?标准方法是使用 ASM 文件和 C文件进行混合编译,但这种方法很麻烦,特别是只要嵌入一小段汇编的情况下。所以我的解决方法是,用软件把汇编转换成机器码,然后直 ...
分类:
其他好文 时间:
2019-10-20 16:28:31
阅读次数:
215
一.Hello,DTOS的创建Q:主引导程序是软件还是固件?如果是软件,那么由谁开发?如何开发?A.主引导程序1.一段存储在主引导区中的有效代码2.并不固化于硬件,属于操作系统代码的一部分3.启动操作系统内核的桥梁,由汇编程序写出4.代码总量不能超过512个字节(包含0x55aa)我们可以由图可以看出BIOS的入口于C/C++的入口的对比实验-编写一个主引导程序(汇编语言),可独立运行于x86架构
分类:
其他好文 时间:
2019-10-20 14:37:47
阅读次数:
126
用汇编语言写递归程序的经验教训: 1.值的进栈与出栈:这个一定要注意,每次调用其他过程的时候,都要想想是不是要把退路保存下来,把原来的变量保存下来,有些甚至不止保存一次,有些甚至会因为分支而要在各个分支中进栈出栈。递归的还得多练,这次居然写了六个小时还被卡了一个点,由此可见我P2大概率会被干掉。 2 ...
分类:
编程语言 时间:
2019-10-20 00:47:04
阅读次数:
112
看的挺快,从第四章看完到现在二十一章,明后天可以看完了。加上同时学的mooc上的数字逻辑电路以及汇编语言,csapp还有各种的知识可以串在一起。 不说了,看自己还记得多少: 第五章 绕过拐角的通信。父母发现了你们的小勾当,你们不能对门了,于是你和你朋友在各自的房子里架齐了两个电灯泡系统,照样可以发编 ...
分类:
编程语言 时间:
2019-10-19 12:55:20
阅读次数:
122
在Hello DTOS中,使用汇编语言直接基于x86架构的硬件完成了第一个主引导程序,实在是大功一件。Hello DTOS博客中,存在着这样一个问题:在开发的过程中没有任何可用的调试环境,当主引导程序越来越复杂时,出现bug根本没法调试。本篇博客就来搭建高效可用的调试环境 调试环境搭建(上)问题:如 ...
分类:
其他好文 时间:
2019-10-19 00:32:54
阅读次数:
95
如何验证编写的主引导程序?解决方案设计:将汇编源码编译为二进制机器码(nasm)创建虚拟盘(bximage)将二进制代码写入虚拟盘起始位置(dd)在虚拟机中将虚拟盘作为启动盘执行(vmware) 就算编译得到了二进制码,如何将二进制的机器码拿到硬件上面去执行呢?因为没有操作系统,所以必须要使用实际的 ...
分类:
其他好文 时间:
2019-10-18 23:52:54
阅读次数:
159
【数据传输指令】 一、通用数据传送指令1、传送指令 MOV (move)指令的汇编格式:MOV DST,SRC指令的基本功能:(DST)<-(SRC) 将原操作数(字节或字)传送到目的地址。指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。指令的执行对标志位的 ...
分类:
编程语言 时间:
2019-10-18 15:42:06
阅读次数:
424
前言 自1946年2月14日世界上首款计算机问世,第一代计算机语言“机器语言”便诞生了,它使用的是最原始的穿孔卡片,这种卡片上使用的语言只有专家才能理解,与人类语言差别极大。这种语言本质上是计算机能识别的唯一语言,人类很难理解。为了能让人们更容易理解并编写,于是便有了第二代的“汇编语言”,相比机器语 ...
分类:
编程语言 时间:
2019-10-16 19:51:18
阅读次数:
128