


- [游客] 分析地不错,我的感觉也是一样的,一起加油啊。 至于malloc具体的实现,我现在还看不透,希望能有 05/31 16:15
- [tomato] 厉害,希望博主还能继续深入研究下去。支持,加油。 11/21 20:00
- [abob] 全国青少年信息学奥林匹克联赛(NOIP)是一项面向全国青少年的信息学竞赛和普及活动,旨在向那些在中学 11/20 17:18
- [abob] 自己做个c语言编译环境,还可以自己所以的扩展,不错 给学弟们用,肯定唬他们够呛 :呵呵 11/20 17:14
- [游客] 算法讲堂有算法及数据结构的汇编实现、讲解、演示,博主可以去那里看看。 11/13 09:38
- [jcw2008] 加油! 11/03 00:03
- [游客] 加油啊! 11/02 21:01
- [wuerlang] 呵呵~~谢谢博主的提醒.我也要看看ntsd ! 10/11 18:04
- [tomato] 好! 08/08 14:36
- [tomato] 对!对!中断中的程序会出现偏移地址不对的情况。博主说的很对,做得也真不错! 08/08 14:30
[2008-11-21 17:16] 汇编语言研究实验(4)
这次是我最后一次对《汇编语言(第二版)》进行讲解了。这次的试验内容比较简单,就是研究函数接收不定量参数的问题。
我们之前已经知道,C语言函数的传递方式是用栈传递参数,而且容易知道,它是从右至左传递的,那么对与不定量的参数,应该也是如此,我们就试试:
void showchar(int,int,...);
main()
{
showchar(8,2,'a','b','c','d','e','f','g','h');
}
void showchar(int n,int color,...)
{
int a;
for (a=0;a...
我们之前已经知道,C语言函数的传递方式是用栈传递参数,而且容易知道,它是从右至左传递的,那么对与不定量的参数,应该也是如此,我们就试试:
void showchar(int,int,...);
main()
{
showchar(8,2,'a','b','c','d','e','f','g','h');
}
void showchar(int n,int color,...)
{
int a;
for (a=0;a...
阅读全文 |
评论次数(1) |
浏览次数(715) |
所属类型(学习心得)
[2008-11-18 13:39] 汇编语言研究实验(3)
这次我研究的是在C语言中不用main函数编程,并了解了一些DOS编程的知识。
我按照书上说的,写了个C程序,然后在TC的IDE下用Build All,结果只有OBJ文件生成,并且报出了错误:
Linker Error: Undefined symbol '_main' in module C0S
看来,C0S.OBJ中有些基本的信息。我用link.exe连接这个文件,生成了EXE文件,连接器给出了警告:
LINK:warning L2029:Unresolved externals
用UltraEdit打开这些OBJ文件,我们能发现_main等标号,还有在debug中看到的...
我按照书上说的,写了个C程序,然后在TC的IDE下用Build All,结果只有OBJ文件生成,并且报出了错误:
Linker Error: Undefined symbol '_main' in module C0S
看来,C0S.OBJ中有些基本的信息。我用link.exe连接这个文件,生成了EXE文件,连接器给出了警告:
LINK:warning L2029:Unresolved externals
用UltraEdit打开这些OBJ文件,我们能发现_main等标号,还有在debug中看到的...
阅读全文 |
评论次数(1) |
浏览次数(754) |
所属类型(学习心得)
[2008-11-18 12:25] 最后的NOIP
11月15日,我去中山参加了NOIP的复赛。这次我的成绩是210分,并非很理想,但是对于我这种不是专门搞信息竞赛的人来说,这个分数可能也是可以的,而且这次我们学校都考得不是很好,包括一些学得很深入的选手。不过,我这次做出了一个选择,我在高中不再参加NOIP了。
可能有的人很奇怪,包括我的父母,因为我还有两次机会。但是,我做出这样的选择有我自己的原因。我觉得NOIP并非是一条适合我走的路。我们为了这个信息学竞赛,要学不少东西,但是有的我是不想学或者暂时不愿意学的,有的学了后发现自己学的并不是很多,如果以后专业不是这个,可能会使自己的知识学得不完全、不扎实;而如果专业是这些,以后就不知道...
可能有的人很奇怪,包括我的父母,因为我还有两次机会。但是,我做出这样的选择有我自己的原因。我觉得NOIP并非是一条适合我走的路。我们为了这个信息学竞赛,要学不少东西,但是有的我是不想学或者暂时不愿意学的,有的学了后发现自己学的并不是很多,如果以后专业不是这个,可能会使自己的知识学得不完全、不扎实;而如果专业是这些,以后就不知道...
阅读全文 |
评论次数(1) |
浏览次数(791) |
所属类型(个人日志)
[2008-11-14 13:03] 汇编语言研究实验(2)
这次,我研究的内容是在C中使用寄存器和内存。
首先,我们要知道应该如何反汇编,否则我们不知道从哪里开始研究。找main函数的入口点很简单,因为main函数名本身代表着main的入口点,所以用printf("%x",main)能轻松打数main函数的首地址。一般来说,main的入口点都是01fah.
在C语言中用寄存器十分简单,按照书上说的做就行了。反汇编后发现,给寄存器赋值用的是mov指令,做加法用add指令,如_AH=_BL+_CL的汇编码就是:
mov ah,bl
add ah,cl
在《汇编语言》的附注4中,我们已经知道,C语言函数调用是用栈传递参数,在...
首先,我们要知道应该如何反汇编,否则我们不知道从哪里开始研究。找main函数的入口点很简单,因为main函数名本身代表着main的入口点,所以用printf("%x",main)能轻松打数main函数的首地址。一般来说,main的入口点都是01fah.
在C语言中用寄存器十分简单,按照书上说的做就行了。反汇编后发现,给寄存器赋值用的是mov指令,做加法用add指令,如_AH=_BL+_CL的汇编码就是:
mov ah,bl
add ah,cl
在《汇编语言》的附注4中,我们已经知道,C语言函数调用是用栈传递参数,在...
阅读全文 |
评论次数(1) |
浏览次数(813) |
所属类型(学习心得)
[2008-11-12 22:26] 用汇编做快速排序
快速排序是一个常用的排序算法,是已知的内部排序算法中最快的,简单的步骤如下:
1、选取枢纽元
2、通过与枢纽元比较,分出比枢纽元大的数集和比枢纽元小的数集
3、对上述两数集进行排序
可见快速排序是个递归的过程。选取枢纽元的常用方法有三种,一种是选第一个数,但是有时会造成效率低下;一种是随机选;还有一种叫三数中值法,就是把左边、中间、右边三数选取大小居中的数。我在这里用的是第三种方法。
还有一点要提醒的是,在排序是必须安排好指针移动和比较的顺序,否则会在细节上出错。还有,用debug等调试器调试递归函数很麻烦(主要是断点的问题),所以我们应尽量使源程序清晰易读,减少错误...
1、选取枢纽元
2、通过与枢纽元比较,分出比枢纽元大的数集和比枢纽元小的数集
3、对上述两数集进行排序
可见快速排序是个递归的过程。选取枢纽元的常用方法有三种,一种是选第一个数,但是有时会造成效率低下;一种是随机选;还有一种叫三数中值法,就是把左边、中间、右边三数选取大小居中的数。我在这里用的是第三种方法。
还有一点要提醒的是,在排序是必须安排好指针移动和比较的顺序,否则会在细节上出错。还有,用debug等调试器调试递归函数很麻烦(主要是断点的问题),所以我们应尽量使源程序清晰易读,减少错误...
阅读全文 |
评论次数(1) |
浏览次数(744) |
所属类型(学习心得)
[2008-11-12 08:59] 汇编语言研究实验(1)
最近买了《汇编语言》第二版,它在第一版的基础上加了好几个研究性学习的项目,感觉还不错。
我这次实验研究的是《汇编语言》的研究试验1和我自己研究的高级语言内联汇编。
我的研究环境是MS-DOS7.1,为了方便,我就不在我的老机器里装那个了,全部放进虚拟机,利用Virtual PC自带的共享功能和主机进行共享。我把需要的文件放进K:\dosshare并共享至DOS的Z盘。
现在,我在dosshare目录下建立文件夹minic,并把tc.exe放进去。我在DOS下把tc.exe运行,打入一段程序(注意:我没用任何库文件)并保存:
main()
{
printf("...
我这次实验研究的是《汇编语言》的研究试验1和我自己研究的高级语言内联汇编。
我的研究环境是MS-DOS7.1,为了方便,我就不在我的老机器里装那个了,全部放进虚拟机,利用Virtual PC自带的共享功能和主机进行共享。我把需要的文件放进K:\dosshare并共享至DOS的Z盘。
现在,我在dosshare目录下建立文件夹minic,并把tc.exe放进去。我在DOS下把tc.exe运行,打入一段程序(注意:我没用任何库文件)并保存:
main()
{
printf("...
阅读全文 |
评论次数(0) |
浏览次数(639) |
所属类型(学习心得)
[2008-11-02 18:00] 继续汇编
今年9月我刚上高一,我发现在高中,学习认为非常的重,因此我也没什么时间搞汇编。最近我还要搞NOIP,因此我只能加紧学习算法应对竞赛,竞赛过后再继续安排我的学习计划。
这几天我看到汇编网有个程序训练营的活动,我就参加了。开始是学习汇编语言,由于我在暑假已经学过,因此我感觉非常轻松,一天之内就搞定了3个单元的检测题。
我觉得进这个训练营是很有好处的。首先,它只需要我的一点课余时间;其次,我可以通过这个活动找回编程的感觉;还有一点就是,我可以通过这个学习,加深我对过去知识的理解,以便学习更新的东西,这就是所谓的温故而知新。
顺便提一下,我的一个同学在我的推荐下,也开始学...
这几天我看到汇编网有个程序训练营的活动,我就参加了。开始是学习汇编语言,由于我在暑假已经学过,因此我感觉非常轻松,一天之内就搞定了3个单元的检测题。
我觉得进这个训练营是很有好处的。首先,它只需要我的一点课余时间;其次,我可以通过这个活动找回编程的感觉;还有一点就是,我可以通过这个学习,加深我对过去知识的理解,以便学习更新的东西,这就是所谓的温故而知新。
顺便提一下,我的一个同学在我的推荐下,也开始学...
阅读全文 |
评论次数(2) |
浏览次数(667) |
所属类型(个人日志)
[2008-10-11 12:52] Windows的调试器ntsd
在DOS下,调试程序可以用debug.在Windows下,可能很多人一提到调试就会说用SoftICE或OllyDbg,但是最近我发现Windows自带的ntsd也很强大。
实际上我发现这个的原因,是为了上信息课的时候打打游戏。我们学校的信息课教室里的电脑,只给我们在受限用户下工作,而且不允许运行除指定程序之外的程序。有一次,我发现可以利用debug在教室里玩DOS游戏。我切换到游戏目录,用"debug mario.exe"载入程序后,打上g命令就能启动游戏了。
那天回家后,我突然想到了ntsd.以前看过一些黑客杂志,说可以用它杀进程,后来发现它是个调试器。后来我突然想到nt...
实际上我发现这个的原因,是为了上信息课的时候打打游戏。我们学校的信息课教室里的电脑,只给我们在受限用户下工作,而且不允许运行除指定程序之外的程序。有一次,我发现可以利用debug在教室里玩DOS游戏。我切换到游戏目录,用"debug mario.exe"载入程序后,打上g命令就能启动游戏了。
那天回家后,我突然想到了ntsd.以前看过一些黑客杂志,说可以用它杀进程,后来发现它是个调试器。后来我突然想到nt...
阅读全文 |
评论次数(1) |
浏览次数(680) |
所属类型(学习心得)
[2008-08-13 18:02] 课程设计2总结
今天,我在努力了3天后,终于完成了课程设计2.这次编程体验给了我不少的经验,锻炼了我的能力。我的这次总结,就是和大家分享我的经验,提升自己的实力。当然了,这同时也表明,王爽的《汇编语言》可以暂时告一段落了。
课程设计2实际上是让我们写一张启动盘。虽然这盘功能小,但是它是我们写操作系统的基础。由于我的电脑没有软驱,因此我就使用虚拟机,并且使用UltraISO制作软盘。写这张盘的时候,必须注意几个问题:
1、这张盘占多少扇区?怎样把该写入的写入软盘?
2、软盘0面0道1扇区应有哪些代码,把其他扇区的内容复制到内存?该复制多少扇区?该复制到哪里?
3、各个模块该怎样处理?
...
课程设计2实际上是让我们写一张启动盘。虽然这盘功能小,但是它是我们写操作系统的基础。由于我的电脑没有软驱,因此我就使用虚拟机,并且使用UltraISO制作软盘。写这张盘的时候,必须注意几个问题:
1、这张盘占多少扇区?怎样把该写入的写入软盘?
2、软盘0面0道1扇区应有哪些代码,把其他扇区的内容复制到内存?该复制多少扇区?该复制到哪里?
3、各个模块该怎样处理?
...
阅读全文 |
评论次数(0) |
浏览次数(672) |
所属类型(学习心得)
[2008-08-08 11:39] 实验16总结
实验16要求写一个新的7ch中断例程,实现16.4中的程序的功能。由于16.4中的程序是一个子程序,程序运行后代码都在程序所在的内存中,使用利用编译器就能知道各个各功能子程序所在偏移地址。而实验16要求写中断例程,如果在7ch的安装程序中使用offset等伪指令,则编译器就把它编译为在安装程序中的地址,就会导致错误。
为了解决这个问题,我把安装程序中子程序的地址转化为实际偏移地址,这样这个中断例程就能正常调用了,代码如下(我把此中断例程安装在0:220h):
i7c: jmp short s7
f:dw cls-i7c+220h,setfc-i7c+220h,set...
为了解决这个问题,我把安装程序中子程序的地址转化为实际偏移地址,这样这个中断例程就能正常调用了,代码如下(我把此中断例程安装在0:220h):
i7c: jmp short s7
f:dw cls-i7c+220h,setfc-i7c+220h,set...
阅读全文 |
评论次数(1) |
浏览次数(744) |
所属类型(学习心得)
『 查看更多文章 』