自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

麦克杰克逊--------世界上最傻的明星

 人家做明星他也做明星, 还是天王巨星 ,但就是学不会耍大牌 。别人一被记者问到不高兴的问题, 立刻翻脸走人, 他被记者追问难堪的事情, 居然还傻了吧唧的老实回答 。 人家明星都深谙娱乐圈的规则, 回答记者提问十之八九都虚无缥缈, 10句话里9句半都是假话 。他倒好 ,来个记者他居然单纯的对那人推心置腹, 让自己掉入陷进 。人家明星捐款他也捐款, 别人捐一点钱就敲锣打鼓的反复宣传, 他...

2009-10-24 10:29:01 157

IA-32处理器内存管理学习总结?

 内容来自于《Intel汇编语言程序设计》(第四版)第11章-------32位windows编程。  其实我们经常看到计算机的虚拟内存地址大于计算机的实际内存地址。这是什么原因呢?这就是内存管理要解释的内容。  内存管理主要涉及两个方面: 从逻辑地址到线性地址的转变从线性地址到物理地址的转变(分页) 所谓逻辑地址,其实就是在段中的偏移地址。比如...

2009-10-23 14:58:24 168

原创 汇编语言秒表程序代码分析(21)

本文代码来自于《Intel汇编语言程序设计》 (第四版)第11章-----------32位windows编程。  秒表程序使用了一个TimeStart来启动秒表,还有一个TimeStop返回自TimeStart启动以来的毫秒数。  程序本身其实很简单,以下为代码: TITLE Calculate Elapsed Time ; Demonstrate a s

2009-10-23 11:57:00 2154

原创 汇编语言GetDateTime代码分析(20)

本文代码来自于《Intel汇编语言程序设计》(第四版)第11章---------32位windows编程。 GetDateTime其实是作者Irvine32库文件中的一个函数,它用来返回一个64位的整数,这个数值是自1601年1月1日开始的以100纳秒为单位的计数值。重要的是微软使用这个数值来作为文件的日期和时间。WIN32 SDK文档中给出的获得系统日期和时间的步骤如下: 1.调

2009-10-23 11:56:00 1267

原创 汇编语言计时器代码分析(19)

来自于《Intel汇编语言程序设计》(第四版)第11章----------32位windows编程。 程序内容为,每经过100毫秒就在屏幕上显示一个点,当大于5000毫秒时退出。 代码如下:  TITLE Calculate Elapsed Time                   ( TimingLoop.asm ) ; This program uses

2009-10-23 11:55:00 1829

原创 汇编语言32位控制台读取用户输入字符程序代码分析(17)

来自于《Intel汇编语言程序设计》(第四版)第11章---------32位windows编程。  所谓控制台,就是我们平常在使用XP系统时,在运行框输入CMD之后出现的那个黑色画面,他看起来与DOS系统很相似,但是两者却完全不同。32位控制台程序运行在保护模式下,而DOS却运行在实模式下。另外两者使用的函数库也完全不同,Win32控制台程序使用的就是windows下的那些A

2009-10-23 11:54:00 3309

原创 汇编语言写文件读文件代码分析(18)

内容来自于《Intel汇编语言程序设计》(第四版)第11章--------32位Windows编程。 我们的整个顺序应该是,首先将内容写入文件(如果没有文件,将会创建新文件),然后将内容从文件中读出。 首先来看一下将数据写入文件:  TITLE Using WriteFile                  ( WriteFile.asm ) INCLUDE

2009-10-23 11:54:00 4177

原创 汇编语言循环遍历链表代码分析(16)

 来自于《Intel汇编语言程序设计》(第四版)第10章-----结构和宏。 首先,链表大家都不陌生,每个节点包含了一个data和一个link,其中Link指向了下一个节点的开始地址。最后一个节点的link保存的是一个空指针(NULL)。 另外本章是关于宏的,宏在汇编中的角色是非常重要的。不过以下的程序只是一个循环遍历链表的程序:  TITLE Creating a

2009-10-23 11:53:00 2361 1

汇编语言秒表程序代码分析(21)

 本文代码来自于《Intel汇编语言程序设计》 (第四版)第11章-----------32位windows编程。  秒表程序使用了一个TimeStart来启动秒表,还有一个TimeStop返回自TimeStart启动以来的毫秒数。  程序本身其实很简单,以下为代码: TITLE Calculate Elapsed Time ; Demonstrate ...

2009-10-23 10:40:11 818

汇编语言GetDateTime代码分析(20)

  本文代码来自于《Intel汇编语言程序设计》(第四版)第11章---------32位windows编程。 GetDateTime其实是作者Irvine32库文件中的一个函数,它用来返回一个64位的整数,这个数值是自1601年1月1日开始的以100纳秒为单位的计数值。重要的是微软使用这个数值来作为文件的日期和时间。WIN32 SDK文档中给出的获得系统日期和时间的步骤如下:...

2009-10-23 10:14:23 237

汇编语言计时器代码分析(19)

  来自于《Intel汇编语言程序设计》(第四版)第11章----------32位windows编程。 程序内容为,每经过100毫秒就在屏幕上显示一个点,当大于5000毫秒时退出。 代码如下:  TITLE Calculate Elapsed Time                   ( TimingLoop.asm ) ; This progra...

2009-10-23 09:45:58 1559 2

汇编语言写文件读文件代码分析(18)

   内容来自于《Intel汇编语言程序设计》(第四版)第11章--------32位Windows编程。 我们的整个顺序应该是,首先将内容写入文件(如果没有文件,将会创建新文件),然后将内容从文件中读出。 首先来看一下将数据写入文件:  TITLE Using WriteFile                  ( WriteFile.asm ) ...

2009-10-22 16:37:07 402

汇编语言32位控制台读取用户输入字符程序代码分析(17)

  来自于《Intel汇编语言程序设计》(第四版)第11章---------32位windows编程。  所谓控制台,就是我们平常在使用XP系统时,在运行框输入CMD之后出现的那个黑色画面,他看起来与DOS系统很相似,但是两者却完全不同。32位控制台程序运行在保护模式下,而DOS却运行在实模式下。另外两者使用的函数库也完全不同,Win32控制台程序使用的就是window...

2009-10-22 15:00:19 647

汇编语言循环遍历链表代码分析(16)

 来自于《Intel汇编语言程序设计》(第四版)第10章-----结构和宏。 首先,链表大家都不陌生,每个节点包含了一个data和一个link,其中Link指向了下一个节点的开始地址。最后一个节点的link保存的是一个空指针(NULL)。 另外本章是关于宏的,宏在汇编中的角色是非常重要的。不过以下的程序只是一个循环遍历链表的程序:  TITLE Creating a...

2009-10-22 11:28:24 369

汇编语言醉汉走路代码分析(15)

来自于《Intel汇编语言程序设计》(第四版)第10章----结构和宏。所谓醉汉走路,即在一个XY坐标的二维地图中,模拟一个醉汉走路的轨迹(原书中说的是一个喝醉了酒还未清醒的教授)。此处仍然用到了结构和宏,来看一下原书代码:  TITLE Drunkard's Walk                   (Walk.asm)INCLUDE Irvine32.incWalk...

2009-10-22 10:50:15 289

原创 汇编语言显示系统时间代码分析(14)

代码来自于《Intel汇编语言程序设计》(第四版)第10章----结构和宏。 如果要显示系统时间,MS-Windows为我们提供了两个函数,用来设置光标位置的控制台函数和现实系统时间的函数。使用这两个函数之前,需要首先定义两个预定义的结构:  COORD STRUCT           X WORD ?           Y WORD ?COORD ENDS

2009-10-22 10:48:00 2947

原创 汇编语言醉汉走路代码分析(15)

 来自于《Intel汇编语言程序设计》(第四版)第10章----结构和宏。 所谓醉汉走路,即在一个XY坐标的二维地图中,模拟一个醉汉走路的轨迹(原书中说的是一个喝醉了酒还未清醒的教授)。此处仍然用到了结构和宏,来看一下原书代码:   TITLE Drunkards Walk                   (Walk.asm) INCLUDE Irvine

2009-10-22 08:31:00 2211

汇编语言显示系统时间代码分析(14)

 代码来自于《Intel汇编语言程序设计》(第四版)第10章----结构和宏。 如果要显示系统时间,MS-Windows为我们提供了两个函数,用来设置光标位置的控制台函数和现实系统时间的函数。使用这两个函数之前,需要首先定义两个预定义的结构:  COORD STRUCT           X WORD ?           Y WORD ?COORD END...

2009-10-21 15:18:57 809

原创 汇编语言冒泡排序算法代码分析(12)

来自于《Intel汇编语言程序设计》(第四版)第九章。  以下为冒泡排序的原文代码:  ;---------------------------------------------------------BubbleSort PROC USES eax ecx esi,        pArray:PTR DWORD,                   ; poi

2009-10-21 10:53:00 6733

原创 汇编语言二分查找排序代码分析(13)

来自于《Intel汇编语言程序设计》(第四版)第九章。 我们知道二分查找排序是每次比较之后都会将查找范围减半的算法,其算法时间复杂度是O(logN),查找40亿的数据时,其时间也不过30秒左右,非常高效,不过其需要的前提是一个已经按升序或降序排序完成的数据集合。 下面看一下原书中用C++实现的适用于有符号整数的二分查找函数: int BinSearch( int value

2009-10-21 10:53:00 2781

原创 汇编语言求字符串长度代码分析(10)

来自于《Intel汇编语言程序设计》(第四版)第八章,该过程返回字符串长度到EAX寄存器中,调用该过程时需要传递字符串的偏移,如: INVOKE Str_length,ADDR myString Str_length过程代码如下: Str_length PROC USES edi,       pString : PTR BYTE             ; point

2009-10-21 10:52:00 4462

原创 汇编语言裁剪字符串代码分析(11)?

来自于《Intel汇编语言程序设计》(第四版)第八章。  裁剪字符串过程从以空字符串结尾的字符串中删除特定字符之后的所有字符。 需要的知识: 1.重复前缀。字符串操作指令本身每次只处理一个内存值。但如果增加一个重复前缀的话,该指令就会使用ECX作为计数器进行重复。几个重复前缀如下: REP                      当ECX>0时重复

2009-10-21 10:52:00 1081

原创 汇编语言数组乘法代码分析(9)

来自于《Intel汇编语言程序设计》(第四版)第八章,主要用到以下两条指令: STOSB,STOSW和STOSD指令将AL/AX/EAX的内容存储在EDI指向的内存单元中,同时EDI的值将根据方向标志的值增加或减少。 LODSB,LODSW和LODSD指令从ESI指向的内存位置向AL/AX/EAX中装入一个值,同时ESI的值根据方向标志值增加或减少。 以下为程序源代码,使用

2009-10-21 10:51:00 1614

原创 汇编语言16位随机整数填充数组代码分析(7)

来自于《Intel汇编语言》(第四版)第八章的一段程序。程序非常简单,以下为代码:  .datacount = 100array WORD count DUP(?).codepush OFFSET arraypush COUNTcall ArrayFill  ArrayFill PROC             push ebp       

2009-10-21 10:50:00 1556

原创 汇编语言实现递归阶乘算法代码分析(8)

来自于《Intel汇编语言程序设计》(第四版)第八章的代码,但是我总是感觉有错误,红色代码部分从逻辑上看永远不会被执行到,以下为源代码:  【注:因为使用的是32位寄存器,因此可以容纳的最大阶乘是12!(479001600)】  TITLE Calculating a Factorial                        ( Fact.asm ) INC

2009-10-21 10:50:00 3096

原创 汇编语言AAA指令多字节加法代码分析(5)

来自于《Intel汇编语言程序设计》(第五版)第七章的代码,使用AAA( ASCII adjust after addition )指令来调整ASCII相加之后的结果。源代码如下: TITLE ASCII Addition                                                    (ASCII_add.asm) ; Perform ASC

2009-10-21 10:49:00 5493

原创 汇编语言值传递和引用传递代码分析(6)

来自于《Intel汇编语言程序设计》(第四版)的第八章。 让我们先来看看值传递,值传递相对简单,看以下代码:  .datamyData WORD 1000h            ; this never changes.codemain PROC         INVOKE Sub1, myData         exitmain ENDP 

2009-10-21 10:49:00 976

原创 汇编语言表格驱动分支选择代码分析(4)

来自于《Intel汇编语言程序设计》(第四版)第六章。  先引用原书的话来解释一下表格驱动分支选择: 表格驱动分支选择是使用表格查找法来替代多路选择结构的一种方法。为了使用该方法,我们必须创建一个包含查找值和过程偏移的表格,程序使用循环来搜索该表格,当需要大量的比较时,这种方法是工作的最好的。 下面是书中的例子程序,用户从键盘输入一个字符,程序使用一个循环将该字符同表中

2009-10-21 10:48:00 913

原创 汇编语言数组中查找正数代码分析(3)

《Intel汇编语言程序设计》(第四版)第六章中的代码,如下: .dataarray SWORD -3 , -6 , -1 ,  -10 , 10 , 30 , 40 , 4sentinel SWORD 0.code         mov esi , OFFSET array         mov ecx , LENGTHOF array         n

2009-10-21 10:47:00 2004

原创 汇编语言字符串加密代码分析(2)

来自于《Intel汇编语言程序设计》(第四版)第六章。 这个例子利用了XOR(异或)指令的一个特性(即对操作数两次异或之后操作效果抵消),对字符串进行加密。 书中代码:  TITLE Encryption Program     (Encrypt.asm) INCLUDE Irvine32.incKEY = 239                      

2009-10-21 10:46:00 2671

原创 汇编语言数组求和代码分析(1)

是这么一段代码,来自于《Intel汇编语言程序设计》(第四版)  ;----------------------------------------------------------------------------ArraySum PROC;;  Calculates the sum of an array of 32-bit integers.;  Receiv

2009-10-21 10:45:00 10469

汇编语言二分查找排序代码分析(13)

 来自于《Intel汇编语言程序设计》(第四版)第九章。 我们知道二分查找排序是每次比较之后都会将查找范围减半的算法,其算法时间复杂度是O(logN),查找40亿的数据时,其时间也不过30秒左右,非常高效,不过其需要的前提是一个已经按升序或降序排序完成的数据集合。 下面看一下原书中用C++实现的适用于有符号整数的二分查找函数: int BinSearch( int va...

2009-10-21 09:52:26 438

汇编语言冒泡排序算法代码分析(12)

  来自于《Intel汇编语言程序设计》(第四版)第九章。  以下为冒泡排序的原文代码:  ;---------------------------------------------------------BubbleSort PROC USES eax ecx esi,        pArray:PTR DWORD,                  ...

2009-10-20 16:52:35 449

汇编语言裁剪字符串代码分析(11)?

   来自于《Intel汇编语言程序设计》(第四版)第八章。  裁剪字符串过程从以空字符串结尾的字符串中删除特定字符之后的所有字符。 需要的知识: 1.重复前缀。字符串操作指令本身每次只处理一个内存值。但如果增加一个重复前缀的话,该指令就会使用ECX作为计数器进行重复。几个重复前缀如下: REP                      ...

2009-10-20 15:27:04 149

汇编语言求字符串长度代码分析(10)

  来自于《Intel汇编语言程序设计》(第四版)第八章,该过程返回字符串长度到EAX寄存器中,调用该过程时需要传递字符串的偏移,如: INVOKE Str_length,ADDR myString Str_length过程代码如下: Str_length PROC USES edi,       pString : PTR BYTE             ;...

2009-10-20 11:05:22 920

汇编语言数组乘法代码分析(9)

 来自于《Intel汇编语言程序设计》(第四版)第八章,主要用到以下两条指令: STOSB,STOSW和STOSD指令将AL/AX/EAX的内容存储在EDI指向的内存单元中,同时EDI的值将根据方向标志的值增加或减少。 LODSB,LODSW和LODSD指令从ESI指向的内存位置向AL/AX/EAX中装入一个值,同时ESI的值根据方向标志值增加或减少。 以下为程序源代码...

2009-10-20 10:07:28 344

汇编语言实现递归阶乘算法代码分析(8)

  来自于《Intel汇编语言程序设计》(第四版)第八章的代码,但是我总是感觉有错误,红色代码部分从逻辑上看永远不会被执行到,以下为源代码:  【注:因为使用的是32位寄存器,因此可以容纳的最大阶乘是12!(479001600)】  TITLE Calculating a Factorial                        ( Fact.asm )...

2009-10-20 08:49:39 764 1

《Intel汇编语言程序设计》第四版勘误

  215页: mov BYTE PTR [ebp-20],'Y'       ; name[0] 数组首地址是EBP-28,那么那么name[0]怎么会是ebp-20呢,是否错误?应为: mov BYTE PTR [ebp-9],'Y'       ; name[0]...

2009-10-19 16:14:43 121

汇编语言16位随机整数填充数组代码分析(7)

  来自于《Intel汇编语言》(第四版)第八章的一段程序。程序非常简单,以下为代码:  .datacount = 100array WORD count DUP(?).codepush OFFSET arraypush COUNTcall ArrayFill  ArrayFill PROC             push ebp ...

2009-10-19 14:55:59 481

汇编语言值传递和引用传递代码分析(6)

  来自于《Intel汇编语言程序设计》(第四版)的第八章。 让我们先来看看值传递,值传递相对简单,看以下代码:  .datamyData WORD 1000h            ; this never changes.codemain PROC         INVOKE Sub1, myData         exitmain EN...

2009-10-19 09:40:05 246

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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