随笔 - 110  文章 - 28 评论 - 26 

留言簿(1)

随笔分类(103)

随笔档案(110)

文章分类(25)

文章档案(28)

新闻档案(3)

友情连接

  • 小蜜蜂
  • 马氏膏药网
  • 淋巴结肿大,淋巴结核,淋巴结炎 乳腺增生,小叶增生 颈椎病,腰椎病,腰间盘突出 马氏淋巴消炎贴,马氏增生散结贴,马氏关节肌肉贴
  • 黑客基地
  • 全球最大的黑客门户网站

最新随笔

积分与排名

  • 积分 - 143117
  • 排名 - 44

最新评论

阅读排行榜

评论排行榜

posted @ 2009-06-08 14:48 小叶子 阅读(643) | 评论 (0)编辑 收藏
http://www.cnitblog.com/Files/shuyezi122/nmake.rar
posted @ 2009-06-05 14:45 小叶子 阅读(4759) | 评论 (0)编辑 收藏
posted @ 2009-06-04 10:04 小叶子 阅读(1097) | 评论 (0)编辑 收藏
发展过程:8080,8086/8088,80186,80286,80386,80486,pentium,pentium2,pentium3,pentium4

8086是一个重要的阶段,8086与8088差相不大

80386是第二个重要的型号,它可以在3个模式下工作:
   1,实模式,想当于8086
   2,保护模式,windows下
   3,虚拟8086模式
比如你的电脑是winXP+dos系统,刚开机,加载DOS就是实模式,加载WINXP就是保护模式,进有cmd就是虚拟8086模式,CPU在这三个模式下运行
posted @ 2009-03-16 17:57 小叶子 阅读(227) | 评论 (0)编辑 收藏
这张图相信很多人都看过,世界上第一台电子计算机ENIAC

     教科书里面的答案是ENIAC。这个答案不算正确,但也没完全错。ENIAC是美国宾州大学研制的第一台电子计算机,也是世界上第一台电子计算机。准确一点说:ENIAC是世界上第一台通用型计算机。ENIAC是Electronic Numerical Integrator And Computer的缩写,它于1946年2月15日诞生;当时的资助者是美国军方,目的是计算弹道的各种非常复杂的非线性方程组。众所周知,这些方程组是没有办法求出准确解的,因此只能用数值方法近似地进行计算,因此研究一种快捷准确计算的办法很有必要。

那个时候的“程序设计”,需要插拔N多的插头

     美国军方花费了48万美元经费在ENIAC项目上,这在当时可是一笔巨款,要不是为了二次世界大战,谁能舍得出这么大的钱?事实上ENIAC也是美国陆军军械部和宾州大学莫尔学院联合发布的,而非书本上所提的只有宾州大学。
  从技术上而言,ENIAC是没有太明晰的CPU概念的。因为它采用电子管作为基本电子元件。用了足足18800个电子管,而每个电子管大约有一个普通家用25瓦灯泡那么大。这样整部电脑就有了8英尺高、3英尺宽、100英尺长的身躯,体积有研立方米,重达30吨,耗电高达140千瓦。每秒能进行5000次加法运算(而人最快的运算速度每秒仅5次加法运算),还能进行平方和立方运算,计算正弦和余弦等三角函数的值及其它一些更复杂的运算。这样的速度在当时已经是人类智慧的最高水平。

     但是,其实ENIAC还不是计算机的最早始祖。现代计算机的思想由来已久,到了19世纪已经才日渐成熟,但是当时的技术水平很低弱,所以根本无法制造出可以运行的系统来,其中最据代表性的就是巴贝奇的分析机。
下图是巴贝奇分析机部件

     英国皇家学会会员、剑桥大学数学教授巴贝奇(Charles Babbage, 1792-1871.),是一位富有的银行家的儿子。他于1792年出生于英格兰西南部的托格茅斯,后来继承了相当丰厚的遗产。巴贝奇把继承的财富都用于科学研究,并显示出极高的数学天赋,考入剑桥大学后,他发现自己掌握的代数知识甚至超过了教师。1817年获硕士学位,1928年受聘担任剑桥大学“卢卡辛讲座”的数学教授,这是只有牛顿等科学大师才能获得的殊荣。
巴贝奇教授,Charles Babbage

     巴贝奇不但精于科学理论,更喜欢将科学应用在各种发明创造上。他最早提出,人类可以制造出通用的计算机,来代替大脑计算复杂的数学问题。当时并没有电子技术的应用,于是巴贝奇的设想就架构在当时日趋成熟的机械技术上。巴贝奇将他设想的通用计算机命名为“分析机”,并希望它能自动解算有100个变量的复杂算题,每个数达25位,速度达到每秒钟运算一次。分析机包括齿轮式“存贮仓库”(Store)和“运算室”即“作坊”(Mill),而且还有他未给出名称的“控制器”装置,以及在“存贮仓库”和“作坊”之间运输数据的输入输出部件。这种天才的思想,划时代地提出了类似于现代电脑五大部件的逻辑结构,也为后世的通用处理器诞生奠定了坚实的基础。
  最初,巴贝奇还有政府的资助来研究设计“分析机”,但是短视的英国政府于1842年,断然宣布停止对巴贝奇的一切资助,而当时的科学界也讥笑他是“愚笨的傻瓜”,公然称差分机“毫无任何价值”。不过英雄的故事里面总是有美人垂青,英国著名诗人拜伦的女儿爱达•拉夫拉斯伯爵夫人(注解1),是唯一能理解巴贝奇的人,也是世界计算机先驱中的第一位女性。她帮助巴贝奇研究分析机,建议用二进制数代替原来的十进制数(编者注:真是天才!)。她还指出分析机可能像雅各织布机一样编程,并发现了编程的要素。她还为某些计算开发了一些指令,并预言计算机总有一天会演奏音乐。第二年,她帮助巴贝奇处理论文的译稿时,加入了许多独特的见解,深得巴贝奇教授的赞许。
  在爱达夫人短暂生命的最后十年里,全力协助巴贝奇工作,甚至把自己的珠宝手饰都拿出来变卖,以帮助巴贝奇度过经济难关。之后,巴贝奇又独自坚持了近20年,直至1871年,这位先驱者孤独地离开了人世时,分析机终于没能制造出来,未完成的一部分也被保留在英国皇家博物馆里。巴贝奇逝世后,他的儿子亨利•巴贝奇少将制造了若干个复制品,送往世界各地保存。亨利坚定地相信,总有一天,他父亲的这种机器一定会被后人制造出来。
  近年来,科学界已经普遍确认巴贝奇在信息科学的鼻祖地位。1991年,为了纪念巴贝奇200周年诞辰,英国肯圣顿(Kensington)科学博物馆根据这些图纸重新建造了一台差分机。复制过程中,只发现图纸存在着几处小的错误。复制者特地采用18世纪中期的技术设备来制作,不仅成功地造出了机器,而且可以正常运转。
后人完成的巴贝奇分析机

      为什么要提这些旧事?其实无论是英特尔、IBM、微软,还是甲骨文,如果没有这些先驱们的奉献,就没有今天的繁荣。另外,我国的教育对于这一段历史的描述非常差,编者希望这样的说明能够在开始以下intel x86神奇时光之旅前,有一个很好的交待,权作抛砖引玉吧。
  注解1: 1981年,美国国防部花了10年的时间,研制了一种计算机全功能混合语言,并成为军方数千种电脑的标准。为了纪念爱达夫人,这种语言被正式命名为ADA语言,并赞誉她是“世界上第一位软件工程师”。
在以下部分的介绍里,集成电路的通用型CPU诞生了!

      其实早在英特尔公司诞生前,集成电路技术就已经被发明。1947年,AT&T贝尔实验室的三位科学家发明了晶体管,晶体管的出现,迅速替代电子管占领了世界电子领域。随后,晶体管电路不断向微型化方向发展。1957年,美国科学家达默提出“将电子设备制作在一个没有引线的固体半导体板块中”的大胆技术设想,这就是半导体集成电路的核心思想。
  1958年,美国德克萨斯州仪器公司的工程师基尔比(Jack Kilby)在一块半导体硅晶片上将电阻、电容等分立元件集成在里面,制成世界上第一片集成电路。也正因为这件事,2000年的诺贝尔物理奖颁发给了已退休的基尔比。1959年,美国仙童公司的诺伊斯用一种平面工艺制成半导体集成电路,从此开启了集成电路比黄金还诱人的时代。其后,摩尔、诺宜斯、葛洛夫这三个“伙伴”离开原来的仙童公司,一起开创事业——筹建一家他们自已的公司。三人一致认为,最有发展潜力的半导体市场是计算机存储器芯片市场。
英特尔的元老,摩尔

英特尔的元老,诺宜斯

英特尔的元老,葛洛夫

吸引他们成立新公司的另一个重要原因是:这一市场几乎完全依赖于高新技术,你可以尽可能地在一个芯片上放最多的电路,谁的集成度高,谁就能成为这一行业的领袖。基于以上考虑,摩尔为新公司命名为:Intel,这个字是由“集成/电子(Integrated Electronics)"两个英文单词组合成的,象征新公司将在集成电路市场上飞黄腾达,结果就真的如此,看来在摩尔有生之年,请他起个名字一定发达。
intel这个名字有着深远涵义

当时,这三位创业者说服风险资本家阿瑟.罗克给他们投资了200万美元;还找到了他们创业的最佳地点,就是原联合碳化物电子公司的大楼,这可比惠普的车库要强多了。公司创建不久,三位创建人就与公司职员(这时是1968年底,英特尔公司已约定,他们将不拘泥于任何特定的技术或产品生产线,用诺宜斯的话来说就是“对当今所有技术进行快镜拍摄,从中发现哪种技术行得通,哪种技术最卓有成效,就开发哪种技术”,公司有的是时间、才能和资金,所以他们不能草率行事。诺宜斯说:“没能任何合同规定我们必须保证某一生产线的生产。我们也不受任何旧技术的约束。”
  英特尔公司发现:当电子在集成电路块的细微部位上出现或消失时,可以将若干比特(bites,资料的最小计量单位)信息非常廉价地储存在微型集成电路硅片上,他们首先将这种发现应用在商业上。1969年的春天,在公司成立一周年以后,英特尔公司生产了第一批产品,即双极处理64比特存储芯片。不久,公司又推出256比特的MOS存储器芯片。一个小小的Intel公司,以它的两种新产品的问世而打入了整个计算机存储器市场——这是一个辉煌的开端,而其他的一些公司直到1980年才能生产MOS芯片和双极芯片。
  随着日本公司加入竞争,内存的生意越来越艰难。尽管当时有很多美国人抱怨日本人公司以低于成本的价格向美国倾销产品,但一个不可否认的事实是,日本在芯片制造上的速度和质量是无与伦比的。这时候,英特尔公司面对有史以来最大的生存危机。不过最终他们作出一个令人钦佩的决断:放弃内存,全力投入微处理器业务。
  说到微处理器业务,其实最初是件很偶然的事情:英特尔的一家客户(Busicom,一家现已不存在的日本厂商)要求英特尔为其专门设计一些处理芯片。在研究过程中,英特尔的研究员霍夫(Hoff)问自已:对于集成电路,能否在外部软件的操纵下以简单的指令进行复杂的工作呢?为什么不可将这个计算机上的所有逻辑集成到一个芯片上并在上面编制简单通用的程序呢?这其实就是今天所有微处理器的原理。但日本公司对此毫无兴趣。在同事的帮助及公司支持下,霍夫把中央处理器的全部功能集成在一块芯片上,再加上存储器;完善了这种后来被称为4004的芯片,也就是世界上第一片微处理器。

4004CPU的样子,可爱吧?

1971年英特尔诞生了第一个微处理器——4004。该芯片其实是为Busicom calculator专门设计制造的,但已经可以看到个人电脑的影子在里面了。据说当时有一位留着长发的美国人在无线电杂志上读到I4004的消息,立即就想能用这个CPU来开发个人使用的操作系统。结果经过一番仔细折腾之后,发现I4004的功能实在是太弱,而他想实现的系统功能与Basic语言并不能在上面实现只好作罢,这个人就是比尔.盖茨——微软公司的老板。不过从此之后,他对英特尔的动向非常关注,终于在1975年成就了微软公司(Microsoft Corporation)。
的核心电路照片

这个也是4004

另外一种样子的4004

4004系列CPU的全家福
Click here to open new windowCTRL+Mouse wheel to zoom in/out
接下来到了8008
8008的运算能力比4004强劲2倍。1974年,一本无线电杂志刊登了一种使用8008作处理器的机器,叫做“Mark-8(马克八号)”,这也是目前已知的最早的家用电脑了。虽然从今天的角度看来,“Mark-8”非常难以使用、控制、编程及维护,但是这在当时却是一种伟大的发明。
8008的样子

这颗比较清楚一点

8008的核心照片


事实上,8008共有四种型号,分别如下:
C8008
就是刚才发的第二张8008图片
C8008-1
刚才发的第一张8008图片
D8008现在发

D8008-1

下一代产品叫做8080,8080被用于当时一种品牌为Altair(牵牛星,这个名字来源于当时电视节目里一个流行的科幻剧)的电脑上。这也是有史以来第一个知名的个人电脑。当时这种电脑的套件售价是395美金,短短数月的时间里面,销售业绩达到了数万部,创造了个人电脑销售历史的一个里程碑。
8080A
Click here to open new windowCTRL+Mouse wheel to zoom in/out
8080的核心照片
Click here to open new windowCTRL+Mouse wheel to zoom in/out
史前总结:
  4004的集成度只有2300个晶体管,功能其实比较弱,且计算速度较慢,以致只能用在Busicom计算器上,更不用说进行复杂的数学计算了。不过比起第一台电子计算机ENIAC来说,它已经轻巧太多太多了。而且最大的历史意义是,它是第一个通用型处理器,这在当时专用集成电路设计横行的时代是难得的突破。所谓专用集成电路设,就是为不同的应用设计独特的产品,一旦应用条件变化,就需要重新设计;当然在商业盈利上,对设计公司是很有好处的。但是英特尔公司的目光并没有这么短浅,霍夫做出大胆的设想:使用通用的硬件设计加上外部软件支持来完成不同的应用,这就是最初的通用微处理器的设想。
  英特尔公司很快对这个设想进行了论证,发现确实可行,而且这种产品的好处就在于采用不同的软件支持就能完成不同的工作,这比重新设计专用的集成电路要简单得多。看到这种产品将来的广阔前景,英特尔公司马上投入了设计工作并很快推出了产品——世界上第一块微处理器Intel 4004。
其实4004处理只能处理4位数据,但内部指令是8位的。4004拥有46条指令,采用16针直插式封装。数据内存和程序内存分开,1K数据内存,4K程序内存。运行时钟频率预计为1M,最终实现达到了740kHz,能进行二进制编码的十进制数学运算。这款处理器很快得到了整个业界的承认,蓝色巨人IBM还将4004装备在IBM 1620机器上。
在4004发布后不久,英特尔连续的发布了几款CPU:4040、8008,但市场反响平平,不过却为开发8位微处理器打下了良好基础。1974年,英特尔公司又在8008的基础上研制出了8080处理器、拥有16位地址总线和8位数据总线,包含7个8位寄存器(A,B,C,D,E,F,G,其中BC,DE,HL组合可组成16位数据寄存器),支持16位内存,同时它也包含一些输入输出端口,这是一个相当成功的设计,还有效解决了外部设备在内存寻址能力不足的问题。
大家一般都只知道8086,很少知道8085的存在,这个就是8085的真面目:

1978年,8086处理器诞生了。这个处理器标志着x86王朝的开始,为什么要纪念英特尔x86架构25周年?主要原因是从8086开始,才有了目前应用最广泛的PC行业基础。虽然从1971年,英特尔制造4004至今,已经有32年历史;但是从没有像8086这样影响深远的神来之作。
8086

8086/8088的核心
Click here to open new windowCTRL+Mouse wheel to zoom in/out
8086的协处理器:8087
8087实际上有13种型号,这里只给出一种的图片,因为都大同小异。

还有一个更关键的因素,是时IBM研究新的PC机来打击苹果的个人电脑。IBM公司需要选择一款强大,易于扩展的处理器来驱动,英特尔的x86处理器取得了绝对的胜利,成为IBM PC的新“大脑”。这个历史的选择也将英特尔公司日后带入了财富500强大公司的行列,并被财富杂志称之为:“七十大商业奇迹之一(Business Triumphs of the Seventies)”
  IBM公司的PC大获成功,不但带旺了英特尔的生意,还造就了另外一个商业奇迹——微软公司。比尔.盖茨搭车销售了DOS操作系统,为今天称霸软件行业攫取了第一桶金。不但如此,因为IBM公司的远见,开放了PC架构的授权,康柏(今天已经变成HP的一部分)等第三方的制造商也大获其利。甚至中国台湾等经济的腾飞都与这次历史的联合有着必然的联系,无论从历史,还是产业的眼光来阅读,这个事件都非常值得称颂!
8088的图片

使用8088芯片的笔记本,它的配置如下:
Intel 8088 CPU
128Kb RAM
3.5" 360kb 或者 720kb 软驱
5MB 硬盘

事实上,IBM在PC XT选用的是8088这个型号。以技术的观点来看,8088其实是8086的一个简版,其内部指令是16位的,但是外部是8位数据总线;相对于8086内部数据总线(CPU内部传输数据的总线)、外部数据总线(CPU外部传输数据的总线)均为16位,地址总线为20位,可寻址1MB内存的规格来说,是稍差了一点,但是已经足以胜任DOS系统和当时的应用程序了。8086集成2.9万只晶体管,时钟频率为4.77MHz,同时还生产出与之配合的数学协处理器8087,这两种芯片使用相同的指令集,可以互相配合提升科学运算的效率。
  当然现在的CPU都内建数学协处理器,因此不再需要额外的数学协处理器芯片,但是七十年代的技术限制,一般只能将数学协处理器做成另外一个芯片,供用户选择。这样的好处是减少了制造的成本,提高了良品率,更降低速度不敏感的用户的支出:他们可以暂时不买数学协处理器,直到需要的时候买1982年,英特尔发布了80286处理器,也就是俗称的286。这是英特尔第一个可以运行所有为其撰写的处理器,在发布后的六年中,全球一共交付了一千五百万台基于286的个人电脑。
80286图片

80286的核心照片
Click here to open new windowCTRL+Mouse wheel to zoom in/out
使用80286的电脑

80286芯片集成了14.3万只晶体管、16位字长,时钟频率由最初的6MHz逐步提高到20MHz。其内部和外部数据总线皆为16位,地址总线24位。与8086相比,80286寻址能力达到了16MB,可以使用外存储设备模拟大量存储空间,从而大大扩展了80286的工作范围,还能通过多任务硬件机构使处理器在各种任务间来回快速切换,以同时运行多个任务,其速度比8086提高了5倍甚至更多。IBM公司将80286用在技术更为先进AT机中,与IBM PC机相比,AT机的外部总线为16位(PC XT机为8位),内存一般可扩展到16MB,可支持更大的硬盘,支持VGA显示系统,比PC XT机在性能上有了重大的进步。
  但是这时候,IBM公司内部发生了很大的分歧:内部很多人反对快速转换到286计算机的销售,因为286 PC会对IBM的小型机与之前的PC XT销售有影响,他们希望缓慢过渡。但是intel公司并不能等,80286处理器已经批量生产了,不可能堆在仓库里等IBM慢慢消化;这时候生产兼容IBM PC的康柏公司就钻了一个空子——快速推出286的PC机,一举打败IBM成为PC市场的新霸主。
微处理器决定了计算机的性能和速度,谁能制造出性能卓越的高速PC,谁便能领导计算机的新潮流,这就是游戏规则。IBM的人最初顺应的这个规则,因此在PC市场大获成功,但是到了286时代,却又放弃了正确的选择,真是让人为之叹惋。
80386进入了32位元的世代
  1985年,英特尔再度发力推出了80386处理器。386集成了27万5千只晶体管,超过了4004芯片的一百倍。并且386还是英特尔第一种32位处理器,同时也是第一种具有“多任务”功能的处理器——这对微软的操作系统发展有着重要的影响,所谓“多任务”就是说处理器可以在同时处理几个程序的指令。
80386图片

80386的核心照片
Click here to open new windowCTRL+Mouse wheel to zoom in/out
80286之前还有一个,80186,楼主给忘了吧, 我们单位现在存有三片,可惜在印刷机上呢,不能拆下来,80186刚推出没几周,80286就出现了,所以一般都没有听过80186的名字

不过就如过渡到286一样,英特尔遇到了很大压力。当时有一种流行的观点认为,286已经足够了,根本没有必要生产386电脑,在销售上开始并不如意。但是英特尔的领导人并不这样认为,在宣传上采纳很多新的手法,借鉴了很多消费类产品的办法,让人耳目一新;另一方面,也对386芯片区分出不同的规格,去适应不同的用户需求。尤其是后来推出的80386SX芯片,内部数据总线为32位,与80386相同,但是外部数据总线为16位,既有386的优点,又有286的成本优势,取得了很大的市场成功;同时原本的386芯片改称为386DX,以区别386SX。
  386时代,Intel在技术有了很大的进步。80386内部内含27.5万个晶体管,时钟频率为12.5MHz,其后又提高到20MHz、25MHz、33MHz等。80386DX的内部和外部数据总线都是32位,地址总线也是32位,可寻址高达4GB内存。它除具有实模式和保护模式外,还增加了一种叫虚拟模式的工作方式,可同时模拟多个8086处理器来提供多任务能力。
80386DX的照片


80186的核心照片

虽然有80186,可是从来没有在PC机上出现过,因此,这是一个容易让人遗忘的芯片^_^
posted @ 2009-03-16 17:47 小叶子 阅读(308) | 评论 (0)编辑 收藏

转:
一。脱壳修改

脱壳的好坏直接影响到木马免杀效果。如果不完全脱壳,在<定位内存特征码>可能会使定位中没发现特征码但是运行中又发现木马。
upx  aspack
二.特征码修改

简单的等效代码转换如下:(不过有时改后也损坏文件所以看情况)
push 改 pop     push eax pop eax
je变 jnz  \\ jmp .nop jbe
add变 sub add eax ,1  sub eax ,-1
call变jmp  nop
lea变mov    lea eax  mov eax
jnb变ja
pushad变popad nop
cmp变sub cmp eax ,ebx eax ebx    sub eax ,ebx
test变and test eax ebx

三.通用跳转法

00000零区域
0050200 call XXXX  \\aaaa
jmp 0060500 pop eax

push eax
jmp 0050200 \\aaaa
0060500 pop eax

四.顺序调换法
push eax
push ebx

push ebx
push eax

五.nop移位法

nop
push eax
add eax ,1


push eax
add eax ,1
nop
六.等值替换法   

add eax ,1 inc eax   或 sub eax ,-1

 

七 大小写替换法
C:\Program Files\iexplorer.exe

C:\PROGRAM FILES\IEXPLORER.EXE
八.00填充法

服务端安装成功
 
c32asm
九.输入表函数移位法
针对nod32杀软的高发式查杀方法
MaskPE加密输入表

posted @ 2009-03-16 15:55 小叶子 阅读(392) | 评论 (0)编辑 收藏
中为英文全拼或简拼(~为简化部分),单词中的大写部分为简写所取字符。
  标志名                     标志为1时          标志为0时
  OF[Overflow Flag]          ov[OVerflow]       nv[Not oVerflow]
  DF[Direction Flag]         dn[DowN]           up[UP]
  IF[Interrupt Flag]         ei[Enable I~t]     di[Disable I~t]
  SF[Sign Flag]              ng[NeGative sign]  pl[PLus sign]
  ZF[Zero Flag]              zr[ZeRo]           nz[Not Zero]
  AF[Auxiliary carry Flag]   ac[Auxiliary Carry]na[Not Aux~]
  PF[Parity Flag]            pe[Parity Even]    po[Parity Odd]
  CF[Carry Flag]             cy[CarrY]          nc[Not Carry]
posted @ 2009-03-10 03:08 小叶子 阅读(395) | 评论 (0)编辑 收藏

标志寄存器是16位特殊寄存器(flag)
其0.2.4.6.7.8.9.10.11分别为CF.PF.AF.ZF.SF.TF.IF.DF.OF,空位没对CPU没有意义

标志寄存器是16位特殊寄存器(flag)
其0.2.4.6.7.8.9.10.11分别为CF.PF.AF.ZF.SF.TF.IF.DF.OF,空位没对CPU没有意义

一.  ZF标志
 在第6位,叫零位标志位,如果CPU运算后,结果为0,则ZF=1,结果不为0,则ZF=0
如:mov ax,2
   sub ax,1
         运行后,因结果不为0,所以ZF=0
二.  PF标志
 在第2位,叫奇偶标志位,如果CPU运算后,结果中1个的个数为偶数,PF=1,为奇数时,PF=0
 如: mov al,1
     add al,10
         运行后,0001+1010=1011,3个1,为奇数,所以PF=0
三.  SF标志
 在第7位,叫符号标志位,如果CPU运算后,结果为负,SF=1,结果为非负,SF=0
 如: sub al,al
  ZF=1,PF=1,SF=0
四.  CF标志
 在第0位,叫进位标志位,如果CPU运算后,发生进位或借位,则CF=1
 如:mov al,98H
    add al,al
     运行后,CF=1(发生进位)
 如:mov al,98H
    sub al,99H
     运行后,CF=1(发生借位)
五.  OF标志
 在第11位,叫益出标志位,只能有符号有意义,上面的CF,只对无符号有意义
六. DF标志
   cld df=0
   std df=1
七. TF单步中断

posted @ 2009-03-08 17:41 小叶子 阅读(805) | 评论 (0)编辑 收藏
CPU执行call时,进行两步操作
1.把当前IP或cs:ip压入栈中
2.然后转移

call不能实现短转移,

格式
call              标号
call far ptr    标号
call              16位寄存器
call word ptr [...]
call dword ptr [...]


因为call压栈,而ret出栈,所以两个结合使用,从而生成有了程序的源程序

代码如下
assume cs:code
code segment
main: ....
       ........
       call s
       ........
       mov ax,4c00H
       int 21h
s:    ....
      ......
      call s0
      .......
      ret
s0:  .......
      .........
      ret
code ends
end main
posted @ 2009-03-08 01:41 小叶子 阅读(585) | 评论 (0)编辑 收藏

ret 用栈中数据改IP内容,近转移
retf用栈中数据同时改CS,IP,远转移

用汇编解释
ret   ->  pop ip

retf  ->  pop ip
             pop cs

posted @ 2009-03-08 01:12 小叶子 阅读(3978) | 评论 (0)编辑 收藏
仅列出标题
共11页: 1 2 3 4 5 6 7 8 9 Last 

笔记和文章,可能抄袭,只为学习,请原谅