基本的驻留程序
4.1 一个基本的COM程序
DOS之下有两种形式的可执行文件,这两种文件分别是COM文件和EXE文件.其中,COM文件可以迅速地加载和执行,但是其大小不能超过64K字节,只能有一个段,代码段.而且起始地址为100H指令必须为程序的启动指令.EXE文件可以加载到许多个段中,因此程序的大小没有限制,但是程序加载的过程就比较慢,而且对于内存驻留程序来说还会造成更大的麻烦.
以下是一个可以正确执行的COM文件,但其内容是空的;只是一个COM文件的框架,可以把你写的任何应用部分加在这个文件中,形成一个COM格式的内存驻留程序:
;Section 1
c...


- [fpamc] 欢迎回归,谢谢分享哈。。 08/21 07:20
- [parse] 声声入耳!佩服。 03/07 20:52
- [chinatree] 强文,收藏了。 02/23 11:17
- [mywiil] xml文件长一个模样,为的是统一数据标准。 02/03 09:36
- [chinatree] 感觉和html一样。 02/02 18:06
- [chinatree] 坐沙发看,虽然看不懂。 02/01 17:10
- [mywiil] 我也是记录下学习过程中的资料。 没事把几个框架都弄弄。用的着。 01/30 15:44
- [chinatree] 博主乃强人也!膜拜不已。 01/30 11:04
- [chinatree] 顶呀! 01/14 17:47
- [tomato] 顶! 01/14 11:20
- [zwjq] 谢谢检查我的作业,非常感谢! 08/21 14:10
- [zouhehui] 谢谢你帮我检查作业,非常感谢! 12/02 12:46
- [assem] 老兄的个性签名很有意思,O(∩_∩)O~,学习了...感谢你对我的提醒,我会加油的,谢过了! 09/19 12:24
- [miaozaoyang] 呵呵,还好,学校挺支持大家学习的。 不过还是有很多的问题啊。 主要还是自学。。。。。。 08/19 23:18
- [semidotnet] 谢谢你对我作业的检查^_^ \(^o^)/ 欢迎下次再来我博客 08/18 10:39
- [zdpopup] 谢谢,你一直的帮助 07/22 09:41
- [fang] 地址总线宽度别为16根,20根,24根,32根 寻址能力分别为:65KB 1MB 16MB 4GB 07/21 09:37
- [zdpopup] 谢谢你帮我改了不少题 和提了很多有用的提示. 谢谢 06/28 23:49
- [lihongbo6668201] 谢谢你啊,但是怎么可以在输入的时候就把62627转换成16进制的送入ax ?我自己转换了一下果然是F 06/28 11:32
- [游客] 15天精通C语言 04/25 11:43
[2009-07-24 16:24] DOS下的内存驻留程序
阅读全文 |
评论次数(0) |
浏览次数(1135) |
所属类型(汇编作业)
[2009-03-25 10:19]
综合研究试验5--函数如何接收不定数量的参数
这个研究试验5是最短的一个研究试验了,但是内容可不简单,也挺费脑筋的(也许是我脑子笨了点)。
刚一看,基本没思路,什么叫不定数量的参数,以前好像没注意过,写函数都是既定的参数啊。结果一看内容,突然知道了什么叫做熟视无睹了。C语言中经常使用的printf这个函数原来就是不定参数的。看来自己的洞察力不够,以前总是打印,打印,打印啊的,没发现printf函数不受参数个数的限制。晕菜~~怎么就能解决这未知的东西呢?程序可没有思想啊,也不能随机应变啊。想不明白啊!跟着书上的路学吧。
首先,是对一个显示字符的简单程序的分析。这个程序经过debug跟踪,main函数和showchar...
刚一看,基本没思路,什么叫不定数量的参数,以前好像没注意过,写函数都是既定的参数啊。结果一看内容,突然知道了什么叫做熟视无睹了。C语言中经常使用的printf这个函数原来就是不定参数的。看来自己的洞察力不够,以前总是打印,打印,打印啊的,没发现printf函数不受参数个数的限制。晕菜~~怎么就能解决这未知的东西呢?程序可没有思想啊,也不能随机应变啊。想不明白啊!跟着书上的路学吧。
首先,是对一个显示字符的简单程序的分析。这个程序经过debug跟踪,main函数和showchar...
阅读全文 |
评论次数(3) |
浏览次数(978) |
所属类型(汇编作业)
[2009-03-23 16:57]
综合研究试验4--不用main函数编程
在看到这个研究试验之前,从来没与想过“C语言程序为什么必须写main函数”、“没有main函数能性不能行”这些类似的问题。在前面的学习过程中,有一点点体会,就是C语言程序最终生成的可执行文件的运行入口并不是main函数,main函数应该和其他函数一样,是被别的程序代码调用的而已。
现在,跟着书中的思路,学习一下,看看究竟。
首先,编写一个f函数,并在tc下进行编译、连接,并回答问题。
(1)编译和连接那个环节会出问题。
答:编译通过,连接出错。
(2)显示的错误信息是什么?
答:Linker Error:Undefined symbol '_main' in modul...
现在,跟着书中的思路,学习一下,看看究竟。
首先,编写一个f函数,并在tc下进行编译、连接,并回答问题。
(1)编译和连接那个环节会出问题。
答:编译通过,连接出错。
(2)显示的错误信息是什么?
答:Linker Error:Undefined symbol '_main' in modul...
阅读全文 |
评论次数(2) |
浏览次数(1550) |
所属类型(汇编作业)
[2009-03-19 20:36]
综合研究试验3--使用内存空间(2)
上次由于时间问题,只学习了研究试验3的一部分内容,现在就把后面的三个题目的学习和思考过程继续贴出来交流。
实践学习题目(3),思考问题:C语言的全局变量、局部变量存放在哪里?每个函数开头的“push bp mov bp,sp”有什么作用。
我们编译连接书上的代码,然后反汇编进行研究,反汇编代码及分析如下:
;main函数部分
1413:01FA 55 PUSH BP
;这里不用说,是保存BP的原始值(作用还得往下看)
1413:01FB 8BEC MOV BP,SP
;这里是将sp的值赋值给BP,那么...
实践学习题目(3),思考问题:C语言的全局变量、局部变量存放在哪里?每个函数开头的“push bp mov bp,sp”有什么作用。
我们编译连接书上的代码,然后反汇编进行研究,反汇编代码及分析如下:
;main函数部分
1413:01FA 55 PUSH BP
;这里不用说,是保存BP的原始值(作用还得往下看)
1413:01FB 8BEC MOV BP,SP
;这里是将sp的值赋值给BP,那么...
阅读全文 |
评论次数(4) |
浏览次数(1120) |
所属类型(汇编作业)
[2009-03-19 09:49]
综合研究试验3--使用内存空间(1)
今天进入“综合研究”中的研究试验3的学习。
在数据操作中,我们除了可以使用寄存器之外,就是内存空间了。我们在以前的汇编语言的学习过程中,也体会了直接利用内存空间存放和处理数据的编程做法。C语言中对寄存器的使用我们做了学习了,这个试验就是去体会C语言中另外一个数据处理方式--使用内存空间。更好的体会一下没有变量的情况下,对数据处理本质的探索。
其实,我们知道,数据肯定是要放到内存的,即使是变量也是定位到内存,然后操作数据的。所以,内存的使用才是变量等的本质操作形式。
以我们以前的汇编基础,我们知道,使用内存空间存储数据,需要指定数据的类型(比如,字节型、字型等)...
在数据操作中,我们除了可以使用寄存器之外,就是内存空间了。我们在以前的汇编语言的学习过程中,也体会了直接利用内存空间存放和处理数据的编程做法。C语言中对寄存器的使用我们做了学习了,这个试验就是去体会C语言中另外一个数据处理方式--使用内存空间。更好的体会一下没有变量的情况下,对数据处理本质的探索。
其实,我们知道,数据肯定是要放到内存的,即使是变量也是定位到内存,然后操作数据的。所以,内存的使用才是变量等的本质操作形式。
以我们以前的汇编基础,我们知道,使用内存空间存储数据,需要指定数据的类型(比如,字节型、字型等)...
阅读全文 |
评论次数(2) |
浏览次数(1373) |
所属类型(汇编作业)
[2009-03-18 09:43]
综合研究试验2---使用寄存器
在前面,根据教材上的步骤,搭建了一个简易的C语言开发环境。然后,我们开始去对我们第一个问题进行研究。
先思考:
C语言编程能不使用变量么?
我的思考:(参考书中的一些提示)
首先,我们得明白,变量是干什么用的。对了,就是在程序运行的时候存储数据的。那么不用变量存储数据行不行呢?!当然行了,前面的汇编学习过程中,我们从来不用变量的。
那我们用什么了?寄存器和内存啊!!所以,从理论上来说,如果C语言支持对寄存器和内存的直接支配,我们就有可能不用变量来编写C程序(当然,为了说明问题,我们值编写一些简单的小程序来说明问题就OK了)。
这个“研究试...
先思考:
C语言编程能不使用变量么?
我的思考:(参考书中的一些提示)
首先,我们得明白,变量是干什么用的。对了,就是在程序运行的时候存储数据的。那么不用变量存储数据行不行呢?!当然行了,前面的汇编学习过程中,我们从来不用变量的。
那我们用什么了?寄存器和内存啊!!所以,从理论上来说,如果C语言支持对寄存器和内存的直接支配,我们就有可能不用变量来编写C程序(当然,为了说明问题,我们值编写一些简单的小程序来说明问题就OK了)。
这个“研究试...
阅读全文 |
评论次数(4) |
浏览次数(823) |
所属类型(汇编作业)
[2009-03-17 15:32]
综合研究实验1--搭建一个简易的C语言开发环境
这是综合研究的第一个研究实验,就是为了以后的学习研究搭建一个简易的开发环境。搭建过程,书中的步骤说的很详细了,只要一步步的按照做,就能轻易的完成。
但是,这个研究试验的重点不是搭建环境本身,而是,通过搭建过程,让我们明白,研究一个东西,首先就是了解,而了解就要从一个入口开始,保证每个过程对自己来说都清楚了,然后,才能进行所谓的研究。
就像书中说到的:
为了研究的过程清晰明了,我们的原则是:
(1)我们只运行解决问题所要用的,我们已知的程序;
(2)所有我们已知的程序在解决我们的问题的运行过程中,需要用到的程序和文件,也都是我们已知的。
这段话让我们清晰的明白,要想研究就...
但是,这个研究试验的重点不是搭建环境本身,而是,通过搭建过程,让我们明白,研究一个东西,首先就是了解,而了解就要从一个入口开始,保证每个过程对自己来说都清楚了,然后,才能进行所谓的研究。
就像书中说到的:
为了研究的过程清晰明了,我们的原则是:
(1)我们只运行解决问题所要用的,我们已知的程序;
(2)所有我们已知的程序在解决我们的问题的运行过程中,需要用到的程序和文件,也都是我们已知的。
这段话让我们清晰的明白,要想研究就...
阅读全文 |
评论次数(3) |
浏览次数(955) |
所属类型(汇编作业)
[2009-03-17 11:30] 从“综合研究”做起!!
前段时间,试着学习了一下汇编网的第二阶段的教程,以前有点C语言的底子,自以为能够应付。不过,还是漏洞百出,惭愧,惭愧!
这几天,时间上有点空隙了,想再重新学习一下。不过,总觉得看着那个教程的内容有点害怕了。呵呵,可能是自己有点菜。忽然,想起《汇编语言(第2版)》的“综合研究”了,当初只是草草的看了一遍,现在顺手又拿了起来,突然有一种“抽自己”的冲动啊!!
当初咋没好好看这一章呢!!!看看这一章的学习培养目的吧
在这部分内容中,本书将启示我们如何进行独立研究和深度思考。同时使我们:
(1)认识到汇编语言对于深入理解其他领域知识的重要性。
(2)对前面所学习的汇编语言知识进行...
这几天,时间上有点空隙了,想再重新学习一下。不过,总觉得看着那个教程的内容有点害怕了。呵呵,可能是自己有点菜。忽然,想起《汇编语言(第2版)》的“综合研究”了,当初只是草草的看了一遍,现在顺手又拿了起来,突然有一种“抽自己”的冲动啊!!
当初咋没好好看这一章呢!!!看看这一章的学习培养目的吧
在这部分内容中,本书将启示我们如何进行独立研究和深度思考。同时使我们:
(1)认识到汇编语言对于深入理解其他领域知识的重要性。
(2)对前面所学习的汇编语言知识进行...
阅读全文 |
评论次数(2) |
浏览次数(396) |
所属类型(汇编作业)
[2009-01-02 21:46] 我错了...
本来以为自己做的检测题都没问题,答案都很有信心,结果还是出了纰漏。
唉!
如下
若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。
答案我竟然深信是FFFFH,自己把栈跟弄倒个了。晕~~~
大家做检测题的时候要注意力集中啊。我真够逊的。。。...
唉!
如下
若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。
答案我竟然深信是FFFFH,自己把栈跟弄倒个了。晕~~~
大家做检测题的时候要注意力集中啊。我真够逊的。。。...
阅读全文 |
评论次数(1) |
浏览次数(418) |
所属类型(汇编作业)
[2009-01-02 20:55] 气死我了
汇编学习时间不短了,没做过检测题,今天做了两次第3章的检测题,竟然没过!!
而且我对每个答案都是十分自信的,看来下次一定记下来,分得弄明白怎么总是说有一个题目不对。
气死我了!!!!...
而且我对每个答案都是十分自信的,看来下次一定记下来,分得弄明白怎么总是说有一个题目不对。
气死我了!!!!...
阅读全文 |
评论次数(1) |
浏览次数(411) |
所属类型(汇编作业)
页码数(1):
1