ZCMUCZX的博客

学习的脚步

程序设计语言及其文法

编译器要对高级语言进行词法语法等分析,要想让计算机能够自动的分析语言 要把语言学知识文法提供给计算机,文法也就是文章的书写法规,一般用来指以文字、词语、短句、句子的编排而组成的完整语句和文章的合理性组织 计算机中如何表示语言和它的文法 英语是由句子组成的集合,而句子又是由单词和标点符...

2018-05-31 21:40:15

阅读数:167

评论数:0

预调页和页的大小的设置依据

如果按需调页系统的一个显著特性是当一个进程开始时会出现大量页错误,当重启一个换出进程时,由于其所有页都在磁盘上,所以每个页都必须通过自己的页错误而调入到内存中。预调页就是试图阻止这种大量的初始调页,这种策略就是同时将所需要的所有页一起调入到内存中。比如说Solaris就对小的文件采用预调页的...

2018-05-31 17:08:52

阅读数:187

评论数:0

文法分类

首先先简单的介绍下两个概念 语言是由文法描述的,文法使用有限的规则将无限的语言描述出来 语言的形式化定义:由文法 G 的开始符号 S 推导出的所有句子构成的集合称为文法 G 生成的语言,记作 L(G) 接下来讲下文法的分类 文法分为0型文法、1型文法、2型文法、3型文...

2018-05-30 19:27:24

阅读数:111

评论数:0

内核内存的分配

当用户态进程需要额外内存的时候,可以从内核所维护的空闲页帧链表中获取页,该链表通常由页替换算法来更新,这些页帧通常分散在物理内存当中,如果用户只需要一个字节的内存,那么会产生内存碎片,这是因为进程会得到整个页帧 内核内存的分配通常是从空闲内存池中获取的,而并不是从满足普通用户模式进程的内存...

2018-05-30 15:57:08

阅读数:86

评论数:0

内存映射文件

利用虚拟内存技术将文件I/O作为普通内存访问的方法叫做文件的内存映射 文件的内存映射可以将一个磁盘块映射成内存的一页(或多页)。开始的文件访问是按照普通请求页面调度来进行的,这样的话就会产生页错误,因为页上没有相应的内容,这样的话,一页大小的部分文件从文件系统读入物理页(有的系统会一次读...

2018-05-30 14:15:41

阅读数:53

评论数:0

文法和语言

一个程序设计语言其实就是一个记号系统,和自然语言一样,它的完整定义包括语法和语义两方面。一个语言的语法是指一组规则,用它可以形成和产生一个合适的程序。 语法只是定义什么样的符号序列是合法的 用上下文无关法作为程序设计语言语法的描述工具,目前较为广泛使用的,就比如说我们可以定义符号...

2018-05-29 23:27:23

阅读数:97

评论数:0

PL/0语言编译系统

PL/0语言编译系统是世界著名科学家N.Wirth 编写的,它是由编译程序和解释程序两部分组成的,PL/0编译程序的源语言为PL/0,目标语言是一个类P-code的代码 PL/0语言编译系统由编译程序和解释程序两部分组成,分别称为PL/0编译程序和类P-code解释程序。PL/0语言程序...

2018-05-28 18:29:15

阅读数:257

评论数:0

处理源程序的软件工具

目前我们都是基于IDE进行开发的,在IDE当中集成了编译程序,编译程序本身就是一种软件开发工具,有了编译程序我们才可以使用编程效率高的高级语言来编写程序 很多软件工作人员研发了很多针对源程序进行处理的软件工具,这些软件工具要像编译程序那样对源程序进行分析,下面就拿Xcode举例子 1...

2018-05-28 15:00:07

阅读数:236

评论数:0

编译程序和解释程序

编译程序是一个语言处理程序,它可以把高级语言程序给翻译成某个机器的汇编语言程序或者是二进制代码程序,这个阶段叫做编译阶段,需要注意的是编译和运行是两个分开的阶段,也就是说我程序必须要全部翻译完毕之后,才能运行。但是在一个交互环境当中,并不需要将两个阶段给分开,也就是我们在使用解释程序的时候,...

2018-05-28 14:15:28

阅读数:970

评论数:0

词法分析、语法分析、语义分析

这里就是拿翻译句子来举例子,从英语翻译到汉语,我们需要分析句子的语义,要划分句子的成分要想进行语义分析就要划分句子成分,比如说划分为人、铁锤、窗户等等我们要想划分句子当中的各类成分,就要用语法分析来识别出句子中的各类短语,这个过程称之为语法分析根据词性来识别出句子中的各类短语,这一过程称之为词法分...

2018-05-27 23:35:09

阅读数:1580

评论数:0

编译器对main函数做的事情

学习了底层之后,会有一个疑问,为什么我程序运行main函数就会自己去运行了?其实这个事情是编译器帮你做的,编译器帮你加了些许指令,下面就简单介绍下 在TC 2.0的编译器下,tc.exe文件会把c0s.obj目标文件和我们自己写的.obj的目标文件一起进行连接,生成.exe文件,按照这样...

2018-05-26 20:47:20

阅读数:82

评论数:0

intel系列微处理器的3种工作模式

在微机中常常用到的intel系列的微处理器的主要的发展其实就是8080、8086/8088、80186、80286、80386、80486、Pentium、Pentium II、Pentium III、Pentium4 其中8086/8088不具备实现一个完善的多任务操作系统的功能,所以i...

2018-05-26 20:08:19

阅读数:205

评论数:0

汇编程序字符串的输入

最基本的字符串输入程序应该具备以下的几个功能 1、在输入的同时需要显示这个字符串 2、在输入回车符之后,字符串输入结束,也就是这个程序退出 3、我们用退格键可以删除字符 编写一个接收字符串输入的子程序,要实现上面三个基本功能,程序的参数有(dh)、(dl),表示显示在屏幕上的行、列的...

2018-05-26 18:41:05

阅读数:200

评论数:0

int 9和int 16h中断-键盘输入、读取

8086PC机当中,键盘的输入将会引发9号中断,BIOS提供了int 9的中断例程。CPU在9号中断发生之后,会去执行int 9中断例程,然后从60h端口当中读取出扫描码,并且将其转换为相应的ASCII码和状态信息,存储在内存的指定的空间(键盘缓冲区或状态字节)当中 一般的键盘输入,在CP...

2018-05-26 15:48:39

阅读数:579

评论数:0

编写包含多个功能子程序的中断例程

assume cs:code,ss:stack stack segment db 128 dup (0) stack ends code segment start: mov ax,stack mov ss,ax mov sp,128 push...

2018-05-26 13:49:19

阅读数:62

评论数:0

汇编关于查表机制

其实在很多时候,我们在设计算法的时候,有的时候就会考虑利用简捷的算法,用一种映射的关系去解决我们需要解决的部分问题,利用表机制可以在两个数据集合之间建立一种映射关系,使得我们可以用查表的方法去根据给出的数据得到其在另一个集合当中对应的数据,这样做的目的一般来说有以下3个 1、为了算法的清晰和简...

2018-05-26 10:57:58

阅读数:311

评论数:0

系统颠簸

如果低优先级的进程所分配的帧的数量少于计算机体系结构所要求的最少数量(其实就是进程完成工作执行的帧的数量),那么必须就要去暂停进程的执行。因为如果进程没有它所需要的活跃使用的帧,那么它会很快产生页错误,这个时候它必须置换某个页,然而,其他所有的页都在使用,它置换一个页,但又立刻再次需要这个页,因此...

2018-05-23 19:19:01

阅读数:148

评论数:0

按需调页算法

在选择程序执行的时候,可以将整个程序载入到内存,有的程序是可以在开始执行的时候带有一组用户可选的选项,根据选项是否使用然后再去调入相应的页,这种技术就称为按需调页 按需调页常常为虚拟内存系统所采用,对于按需调页虚拟内存,只有程序执行需要时才会去载入页,那些从未访问的页是不会调入到物理内存中的,按...

2018-05-23 18:32:51

阅读数:219

评论数:0

虚拟内存技术

虚拟内存技术允许执行进程不必完全的在内存当中,这种方案的显著的优点就是程序可以比物理内存大,虚拟内存其实就是把内存抽象成了一个巨大的、统一的存储数组,进而会将用户所看到的逻辑内存与物理内存分开 这种技术是允许程序员不受内存存储的限制,虚拟内存也允许进程很容易地共享文件和地址空间,还会为创建...

2018-05-23 16:56:55

阅读数:246

评论数:0

汇编-按下A键后,松开就显示全屏的A程序

设置一个新的int 9中断程序,在DOS下,按下A键之后,除非不再松开,如果松开,就显示满屏的A assume cs:code stack segment db 128 dup(0) stack ends code segment start: mov a...

2018-05-22 05:29:23

阅读数:91

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭