汇编网首页登录博客注册
272003327的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
友情链接

[2009-02-19 22:21] 详述程序段前缀(psp)

点击查看原图
PSP处于可执行文件之前,长256个字节。运行一个程序时,DS和ES段寄存器都指向PSP。寄存器CS和SS都指向紧跟PSP后的代码段的起始地址,这是连接时确定的。SP的内容为0000H,IP等于程序中end指示符所指定的地址。这是假定程序中没有指定堆栈段,否则堆栈段就会位于PSP和代码段之间。
  PSP中包含有命令行引入的信息,从偏移地址81H开始。(偏移地址81H通常是20H即空格,为确保正确起见,一般认为从偏移地址81H处开始。)
  例如,在DOS下运行程序show,命令为C:\>show welcome。那么,在偏移地址81H处为字符' '(空格),82H处为'w',等等,最后输...
阅读全文 | 评论次数(1) | 浏览次数(695) | 所属类型(默认类型)

[2009-02-18 17:58] 什么是文件句柄

由于几乎所有软件均使用文件句柄来操作文件。文件句柄是一个指向建立或打开的文件的数。句柄的本质是什么?
   它是一种编程方法吗?难到底层的程序根据文件句柄来算出文件在磁盘中的位置吗。
   或者,文件句柄是文件分配表中一条记录的主关键字。这些记录存储了与文件有关的信息(文件名,属性和地址)。不知道是不是。...
阅读全文 | 评论次数(1) | 浏览次数(706) | 所属类型(汇编作业)

[2009-02-17 14:34] 库文件(*.lib)

点击查看原图
库文件是一些常用于各种程序之中的过程的集合,这些过程由附属于MASM汇编程序的LIB程序汇编和编译后放在库文件中。在库中公共的过程总存在一起,以便于被不同的应用程序调用。当一个程序进行连接时,相应的库文件被激活。
   为什么使用库文件呢?一个库文件总是用来存放相关的一些过程,当库文件与源程序连接时,只是库中相关的过程移出来并添加到程序之中。如果要有效地编写汇编语言程序,使用库文件不失为一种好方法。
   MASM汇编程序的LIB应用程序,可以建立一个库文件。一个库文件是若干个过程经汇编后形成的.OBJ文件的集合。
   例如下面的两个源程序文件(read_key.asm和echo.as...
阅读全文 | 评论次数(0) | 浏览次数(567) | 所属类型(默认类型)

[2009-02-16 22:30] 命令文件

一个小于64K的可执行文件能转换成一个命令文件,扩展名为.COM。命令文件和可执行文件有一点差异,命令文件在它执行前必须定位在100H处。命令文件的最大优点是文件能快乐地由磁盘装入内存,而且,需要的存储空间也较少。我们可以使用MASM5.1软件包中的EXE2BIN文件将一个可执行文件转换成命令文件。...
阅读全文 | 评论次数(1) | 浏览次数(644) | 所属类型(默认类型)

[2009-02-16 15:58] 什么时候会用到段的定位类型PAGE、WORD和BYTE呢?

点击查看原图
段的定位类型表示对段的起始边界要求。可有四种选择:
(1)PAGE(页): 表示本段从一个页的边界开始。一页为256个字节,所以段的起始地址一定能以256整除。这样,段起始地址的最后八位二进制数一定为0(也就是以00H结尾的地址)。

(2)PARA(节): 如果定位类型用户未选择,则隐含为PARA。它表示本段从一个节的边界开始。(一节为16个字节)。所以段的起始地址一定能以16整除。最后四位二进制数一定是'0'。如09150H,0AB30H等。

(3)WORD(字):表示本段从一个偶字节地址开始。即段起始单元地址的最后一位二进制数一定是'0',即以0,2,4,6,8,A,C,E结...
阅读全文 | 评论次数(1) | 浏览次数(829) | 所属类型(默认类型)

[2009-02-16 12:44] 存储器模型

微模型对于许多小的程序有效,要求全部的指令和数据安排在64k字节内存段以内。小模型要求只用一个数据段与一个代码段,总计128k字节存储器。
   但我还是不明白到底是什么意思?...
阅读全文 | 评论次数(0) | 浏览次数(444) | 所属类型(默认类型)

[2009-02-14 12:03] 实现一个简单的printf函数,只需支持"%c、%d"

点击查看原图
这个小程序实现了一个简单的printf函数,只能支持"%c、%d"。刚开始我一点头绪都没有,心里面起疙瘩。我思索了半天,终于想出来了。勤于思考是学好知识的好习惯。通过对汇编语言的两个多月的学习,我养成了勤于思考,勤于实验的习惯,提高了分析问题,解决问题的能力,也提高了我的自信心。


void _printf(char*,...);
int itos(char*,int);

void main()
{
  _printf("%d,%d,%d,%d,%c,%c,%c,%c",123,1234,12345,10001,'a','b','c','d');
}

void _p...
阅读全文 | 评论次数(1) | 浏览次数(741) | 所属类型(汇编作业)

[2009-01-11 14:11] 关于中断程序中的栈

假如一个中断程序用了大量的栈空间,当我们的程序调用这个中断时,如果程序中没有开辟栈空间,那么中断程序中的栈是哪里来的呢?
   操作系统的装载程序就会为这个中断程序提供默认的系统栈。我是这样猜想的.不知道是不是?...
阅读全文 | 评论次数(2) | 浏览次数(726) | 所属类型(汇编作业)

[2009-01-08 21:29] 成为一个出色的游戏程序员,我该做些什么?

我喜欢电脑游戏,我一直想用计算机开发各种各样的游戏,想以后当个出色的游戏程序员。这个想法,我在中学的时候就有过,它让我激动。如果我想用C语言开发基于windows的中国象棋人机对战游戏,游戏的环境跟QQ游戏里的一样,优美的棋盘,动听的音乐和形象的声音;或者开发一个类似“战地2”一样的军事模拟游戏。可我好像身陷在一层大雾中间,看不到前方,不知道如何着手?我应该要了解什么知识呀!编译器、算法、多进程、windows API、数据库、Direct等等。
  还请各位朋友指点迷津!!!!!!...
阅读全文 | 评论次数(3) | 浏览次数(812) | 所属类型(默认类型)

[2009-01-08 20:44] 我应该学习操作系统的哪些东西

很多程序员的招聘广告上写着"了解linux、unix、windows"。我不清楚,我们到底学习这些操作系统的哪些东西呀?是它的API吗?还是它的其它方面?...
阅读全文 | 评论次数(2) | 浏览次数(822) | 所属类型(默认类型)
『 查看更多文章 』