《80x86汇编语言程序设计》学习笔记(1)

基础知识

1.1 进位记数制与不同基数的数之间的转换

1.1.1 二进制数

计算机中为例子于存储及计算的物理实现,采用二进制数。二进制数的基数为2,只有01两个数码,并遵循逢21的规则,它的各位权是以2 k 表示的,因此二进制数anan-1a0·b1b2bm的值是:

an·2n + an-1·2n-1 + … + a0·20 + b1·2-1 + b2·2-2 + … + bm·2-m

其中aibj01两个数码中的一个。例如:

1011012 =1×25+1×23+1×22+1×20=4510

其中数的下标表示该数的基数r,即二进制的101101与十进制的45等值。

n位二进制数可以表示2n个数。例如3位二进制数可以表示8个数,而4位二进制数则表示十进制的0~1516个数。

为便于人们阅读及书写,经常使用八进制或十六进制数来表示二进制数。它们的基数和数码如下所示:

 十六进制数,基数为16,数码:0123456789ABCDEF

十进制数,基数为10,数码:0123456789

八进制数,基数为8,数码:01234567

二进制数,基数为2,数码:01

在计算机里,通常用数字后面跟一个英文字母来表示该数的数制。十进制数一般用Ddecimal)、二进制数用Bbinary)、八进制数用Ooctal)、十六进制数用Hhexadecimal)来表示。例如:117D1110101B0075H,…。也可以用这些字母的小写形式来表示。

1.1.2二进制数和十进制数之间的转换

1.       二进制数转换为十进制数

各位二进数码乘以与其对应的权之和即为该二进数相对应的十进制数。例如:

1011100.10111B=26+24+23+22+2-1+2-3+2-4+2-5=92.71875D

2.       十进制数转换为二进制数

十进制数转换为二进制数的方法很多,这里只说明比较简单的降幂法及除法两种。

1)降幂法

首先写出要转换的十进制数,其次写出所有小于此数的各位二进制权值,然后用要转换的十进制数减去它最相近的二进制权值,如够减,则减去并在相应位记以1;如不够减,则在相应位记以0并跳过此位;如此不断反复,直到该数为0为止。

例1.1         N=117D,小于N的二进制权为:

64 32 16 8 4 2 1

对应的二进制数是  1  1  1 0 1 0 1

计算过程如下:

117-26 = 117 – 64 =53        (a6=1)

53-25 = 53 – 32 = 21           (a5=1)

21-24 = 21 – 16 =5              (a4=1)

                                                                (a3=0)

5-22 =5 - 4 = 1                    (a2=1)

                                                                (a1=0)

1-20 = 1-1 = 0                     (a0=1)

所以N=117D=1110101B

 

1.2  N=0.8125D,小于此数的二进数权为:

0.5  0.25  0.125  0.0625

对应的二进制数是:1    1     0      1

计算过程如下:

0.8125-2-1=0.8125-0.5=0.3125    (b1=1)

0.3125-2-2=0.3125-0.25=0.0625   (b2=1)

                                    (b3=0)

0.0625-2-4=0.0625-0.0625=0      (b4=1)

所以N=0.8125D=0.1101B。

   (2)除法

1.3 N=117D

117/2=58    (a0=1)

58/2=19     (a1=0)

29/2=14     (a2=1)

14/2=7      (a3=0)

7/2=3       (a4=1)

3/2=1       (a5=1)

1/2=0       (a6=1)

所以N=117D=1110101B。

对于被转换的十进制数的小数部分则应不断乘以2,并记下其整数部分,直到结果的小数部分为0为止。

1.4 N= 0.8125D

0.8125 × 2 = 1.625  (b1 = 1)

0.625 × 2 = 1.25     (b2 = 1)

0.25 × 2 = 0.5       (b3 = 0)

0.5 × 2 = 1.0        (b4 = 1)

所以N = 0.8125D = 0.1101B。

 

1.1.3 十六进制数及其与二进制数、十进制数之间的转换

我们知道,在计算机内部,数的运算和存储都是采用二进制的。但是,二进制数对于人的阅读,书写及记忆都是很不方便的。十进制数虽然是人们最熟悉的一种进位记数制,但它与二进制数之间并无直接的对应关系。为了便于人们对二进制数的描述,应该选择一种易于与二进制数相互转换的数制。显然,使用2n 作为基数的数制是能适合人们的这种要求的,常用的有八进制数和十六进制数。

 

1.       十六进制数的表示

计算机中存储信息的基本单位为一个二进制位(bit),它可以用来表示01两个数码。此外,由于计算机中常用的字符是采用由8位二进制数组成的一个字节(byte)来表示的,因此字节也成为计算机中存储信息的单位。计算机的字长一般都选项为字节的整数倍,如16位、32位、64位等。一个字由8位组成,它可以用两个4位组(又称半字节)来表示,所以用十六进制数来表示二进制数是比较方便的。

十六进制数的基数是16,共有16个数码,它们是0123456789ABCDEF。其中A表示十进制的10,余类推。

 

2.       十六进制数和二进制数之间的转换

 

由于十六进制数的基数是2的幂,所以这两种数制之间的转换是十分容易的。一个二进制数,只要把它从低位到高位每4位组成一组,直接用十六进制数来表示就可以了。

1.5   0011 0101 1011 1111

         3     5    B   F

亦即0011010110111111B=35BFH

反之,把十六进制数中的每一位用4位二进制数表示,就形成相应的二进制数了。

1.6   A    1     9    C

        1010 0001  1001  1100

亦即A19CH = 1010000110011100B

 

3.       十六进制数和十进制数之间的转换

各位十六进制数与其对应权值的乘积之和即为与此十六进制数相对应的十进制数。

1.7   N=BF3CH

=11×163+15×162+3×161+12×160

=11×4096+15×256+ 3×16+12×1

=48956D

十进制数转换为十六进制数也可使用降幂法和除法。

(1)降幂法

首先写出要转换的十进制数,其次写出小于该数的十六进制权值,然后找出该数中包含多少个最接近它的权值的倍数,这一倍数即相应位的值,用原数减去此倍数与相应位权值的乘积得到一个差值,再用此差值去找低一位的权值的倍数,如此反复直到差值为0为此。

1.8   N=48956D  小于N的十六进制权值为

                  4096   256   16   1

对应的十六进制数   B      F     3   C

计算过程如下:

             48956-11×4096 = 3900

         3900 – 15 ×256 = 60

             60-3×16 = 12

12-12×1 =0

所以N=48956D=(11)(15)(3)(12)=BF3CH

 

2)除法

把要转换的十进制数的整数部分不断除以16,并记下余数,直到商为0为止。

1.9 N=489856D

              48956/16=3059   (a0=12)

               3059/16=191    (a1=3)

                191/16=11     (a2=15)

                 11/16=0      (a3=11)

所以N=48956D=BF3CH。

    对于要转换的十进制数的小数部分,则应不断地乘以16,并记下其整数部分,直到结果的小数部分为0为止。由于其方法与二、十进制数的转换方法是相同的,这里不再举例说明。显然,为把一个十进制数转换为二进制数,可以先把该数转换为十六进制数,然后再转换为二进制数,这样可以减少计算次数;反之,要把一个二进制数转换十进制数,也可采用同样的方法。

1.2 二进制数和十六进制数运算

1.2.1二进制数运算

   加法规则:0+0=00+1=11+0=11+1=0(进位1

   乘法规则:0×0=00×1=01×0=01×1=1

1.2.2十六进制数运算

十六进制数的运算可以采用先把该十六进制数转换为十进制数,经过计算后再把结果转换为十六进制数的方法,但这样做比较繁琐。其实,只要按照逢十六进一的规则,直接用十六进制数来计算也是很方便的。

十六进制加法:当两个一位数之和S小于16时,与十进制数同样处理;如果两个一位数之和大于或等于16时,则应该用S-16及进位1来取代S

1.10

 

05C3H

+ 3D25H

= 42E8H

十六进制数的减法也与十进制数类似,够减速时可直接相减,不够减时服从向高位借1为16的规则。

 

 

 

 

1.11

 

           3D25H

  -  05C3H

              =  3762H

十六进制数的乘法可以用十进制数的乘法规则来计算,但结果必须用十六进制数表示。

1.12

 

          05C3H

        -  00ABH

        =3F61

     +   399E

         =3D941H

十六进制数的除法可以根据其乘法和减法规则处理。

 

1.3计算机中数和字符的表示

1.3.1数的补码

计算机中的数是用二进制来表示的,数的符号也是用二进制表示的。在机器中,把一个数连同其符号在内数值化表示称为机器数。一般用最高有效位来表示数的符号,正数用0表示,负数用1表示。机器数可以用不同的码制来表示,常用的有原码、补码和反码表示法。由于多数机器的整数采用补码表示法,80x86机也是这样。

补码表示法中正数采用符号-绝对值表示,即数的最高有效位为0表示符号为正,数的其余部分则表示数的绝对值。例如,假设机器字长为8位,则[+1]=00000001[+127]=01111111,[+0]=00000000。

当用补码表示法来表示负数时则要麻烦一些。负数用2n-|X|来表示,其中n为机器的字长。当n=8时,[-1]=28-1=11111111,而[-127]补=28-127=10000001,显然,最高有效位为1表示该数符号为负。应该注意,[-0]=28  =00000000,所以在补码表示法中0只胡一种表示,即00000000。对于10000000这个数,在补码表示法中被定义为-128。这样,8位补码能表示数的范围为-128~127。

我们可以用一种比较简单的方法来写出一个负数的补码表示:先写出该负数相对应的正数补码表示(用符号-绝对值法),然后将其按位求反(即0变1,1变0),最后在末位(最低位)加1,就可以得到该负数的补码表示了。

 

 

1.13 机器字长为16位,写出N=-117D的补码表示。

+117D可表示为  0000 0000 0111 0101

按位求反后为    1111 1111 1000 1010

末位加1后      1111 1111 1000 1011

用十六进制数表示为F   F    8    B

[-117D]=FF8BH

 

1.14 如机器字长为8位,则-46D的补码表示为:

+46D的补码表示为   0010      1110

按位求反            1101      0001

末位加1后          1101      0010

用十六进制数表示      D         2

[-46]=D2H

 

至此,我们已经学会了一个数的补码表示法。在这里,说明一下用补码表示数时的符号扩展问题。所谓符号扩展问题是指一个数从位数较少扩展到位数较多(如从8位扩展到16位,或从16位扩展到32位)时应该注意的问题。对于用补码表示的数,正数的符号扩展应该在前面补0,而负数的符号扩展则应该在前面补1。例如,我们已经知道如机器字长为8位时,则[+46]=00101110,[-46]=11010010;如果把它们从8位扩展到16位,则[+46]=0000000000101110=002EH,[-46]=1111111111010010=FFD2H。

下面,我们再来讨论一下n位补码表示的范围问题。8位二进制数可以表示28=256个数,当它们是补码表示的带符号数时,它们的表数范围是-128≤N≤+127。一般说来,n位补码表示的数的表数范围是:

-2n-1  ≤N≤ 2n-1-1

所以n=16时的表数范围是:-32768≤ N≤ +32767

在机器里,为了扩大表数范围,可以用两个机器字(高位字和低位字)来表示一个机器数,这种数称为双字长数或双精度数,其格式为:

 

 

其中高位字的最高有效位为符号位,高位字的低15位和整个低位字的16位联合组成31位数表示数值,因而低位字的最高有效位没胡符号意义,只有数值意义。双字长数的表数范围可扩大到:

-231 ≤N≤ 231-1

231≈2.15×109 ,可见表数范围扩大了许多。上图中每个字上的0,15是位编号,每个机器字都从低位开始给每一位以编号,所以从右至左依次编号为0,1,…,15。

80386及其后继机型的机器字长已扩展为32位。为了统一起见,80x86系统仍称32位字为双字,这样又有了8个字节64位的4字。

 

1.3.2补码的加法和减法

我们知道,对一个正数的补码表示按位求反后再在末位加1,可以得到与此正数相应的负数的补码表示。我们把这种对一个二进制数按位求反后在末位加1的运算称为求补运算。可以证明,补码表示的数具有以下特性:

 

[X]→求补→[-X]→求补→[X]

 

这一特性在补码的加、减法运算中很有用。

补码的加法规则是:

[X+Y]=[X]+[Y]

补码的减法规则是:

[X-Y]=[X]+[-Y]

其中的[-Y]补只要对[Y]补求补就可得到。

 

1.3.3符号整数

在某些情况下,要处理的数全是正数,此时再保留符号位就没有意义了。我们可以把最高有效位也作为数值处理,这样的数称为无符号整数。8位无符号数的表数范围是0N25516位无符号数的表数范围是0N6553532位无符号数的表数范围是0N232-1。

在计算机中最常用的无符号整数是表示地址的数。此外,如双精度的低位字也是无符号整数等。在某些情况下,带符号的数(在机器中用补码表示)与无符号数的处理是有差别的,读者在处理时,应注意它们的区别。

1.3.4字符表示法

计算机中处理的信息并不全是数,有时需要处理字符或字符串,例如从键盘输入的信息或打印输出的信息都是以字符方式输入输出的。因此,计算机必须能表示字符。字符包括:

字母:A、B、…、Z,a、b、…、z;

数字:0、1、…、9;

专用字符:+、-、*、/、SP(space空格)…;

非打印字符:BEL(Bell响铃)、LF(line feed换行)、CR(carriage return回车)、…;

这些字符在机器里必须用二进制数来表示。80x86机采用目前最常用的美国信息交换标准代码ASCII(American Standard Code for Information Interchange)来表示。这种代码用一个字节(8位二进制码)来表示一个字符,其中低7位为字符的ASCII值,最高位一般用作校验。

1.4几种基本的逻辑运算

1.4.1“与”运算(AND)

“与”运算又称逻辑乘,可用符号·或∧来表示。如有A、B两个逻辑变量(每个变量只能有0或1两种取值),可能有的取值情况只有4种,在各种取值的条件下得到的“与”运算结果只有当A、B两个变量的取值均为1时,它们的“与”运算结果才是1。

1.4.2“或”运算(OR)

“或”运算又称逻辑加,可用符号+或∨来表示。“或”运算规则:即AB两个变量中只要有一个变量取值为1,则它们“或”运算的结果就是1

A

1.4.3“非”运算(NOT)

“非”运算的规则,即非01,非10

1.4.4“异或”运算(XOR,exclusive-OR)

“异或”运算,即当两个变量的取值相异时,它们的“异或”运算结果为1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书分为三部分。第一部分是基础部分,以8086/8088为背景,以DOS和PC兼容机为软硬件平台,以MASM和TASM为汇编器,介绍汇编语言的有关概念,讲解汇编语言程序设计技术。第二部分是提高部分,以80386为背景,以新一代微处理器Pentium为目标,细致和通俗地介绍了保护方式下的有关概念,系统和详细地讲解了保护方式下的编程技术,真实和生动地展示了保护方式下的编程细节。第三部分是上机实验指导。 本书的第一部分适合初学者,可作为学习汇编语言程序设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为程序员透彻地了解Windows程序设计技术的参考书。 第一部分 基础部分 第1章 绪论 1.1 汇编语言概述 1.1.1 汇编语言 1.1.2 汇编语言的特点 1.1.3 恰当地使用汇编语言 1.2 据的表示和类型 1.2.1 据的表示 1.2.2 非据的表示 1.2.3 基本据类型 1.3 Intel系列CPU简介 1.3.1 8位微处理器 1.3.2 16位微处理器 1.3.3 32位微处理器 1.3.4 Pentium和Pentium Pro 1.4 习题 第2章 8086/8088寻址方式和指令系统 2.1 8086/8088寄存器组 2.1.1 8086/8088 CPU寄存器组 2.1.2 标志寄存器 2.2 存储器分段和地址的形成 2.2.1 存储单元的地址和内容 2.2.2 存储器的分段 2.2.3 物理地址的形成 2.2.4 段寄存器的引用 2.3 8086/8088的寻址方式 2.3.1 立即寻址方式 2.3.2 寄存器寻址方式 2.3.3 直接寻址方式 2.3.4 寄存器间接寻址方式 2.3.5 寄存器相对寻址方式 2.3.6 基址加变址寻址方式 2.3.7 相对基址加变址寻址方式 2.4 8086/8088指令系统 2.4.1 指令集说明 2.4.2 据传送指令 2.4.3 堆栈操作指令 2.4.4 标志操作指令 2.4.5 加减运算指令 2.4.6 乘除运算指令 2.4.7 逻辑运算和移位指令 2.4.8 转移指令 2.5 习题 第3章 汇编语言及其程序设计初步 3.1 汇编语言的语句 3.1.1 语句的种类和格式 3.1.2 值表达式 3.1.3 地址表达式 3.2 变量和标号 3.2.1 据定义语句 3.2.2 变量和标号 3.3 常用伪指令语句和源程序组织 3.3.1 符号定义语句 3.3.2 段定义语句 3.3.3 汇编语言源程序的组织 3.4 顺序程序设计 3.4.1 顺序程序举例 3.4.2 简单查表法代码转换 3.4.3 查表法求函值 3.5 分支程序设计 3.5.1 分支程序举例 3.5.2 利用地址表实现多向分支 3.6 循环程序设计 3.6.1 循环程序举例 3.6.2 多重循环程序举例 3.7 习题 第4章 子程序设计和DOS功能调用 4.1 子程序设计 4.1.1 过程调用和返回指令 4.1.2 过程定义语句 4.1.3 子程序举例 4.1.4 子程序说明信息 4.1.5 寄存器的保护与恢复 4.2 主程序与子程序间的参传递 4.2.1 利用寄存器传递参 4.2.2 利用约定存储单元传递参 4.2.3 利用堆栈传递参 4.2.4 利用CALL后续区传递参 4.3 DOS功能调用及应用 4.3.1 DOS功能调用概述 4.3.2 基本I/O功能调用 4.3.3 应用举例 4.4 磁盘文件管理及应用 4.4.1 DOS磁盘文件管理功能调用 4.4.2 应用举例 4.5 子程序的递归和重入 4.5.1 递归子程序 4.5.2 可重入子程序 4.6 习题 第5章 输入输出与中断 5.1输 入和输出的基本概念 5.1.1 I/O端口地址和I/O指令 5.1.2 据传送方式 5.1.3 存取RT/CMOS RAM 5.2 查询方式传送据 5.2.1 查询传送方式 5.2.2 读实时钟 5.2.3 查询方式打印输出 5.3 中断 5.3.1 中断和中断传送方式 5.3.2 中断向量表 5.3.3 中断响应过程 5.3.4 外部中断 5.3.5 内部中断 5.3.6 中断优先级和中断嵌套 5.3.7 中断处理程序的设计 5.4 基本输入输出系统BIOS 5.4.1 基本输入输出系统BIOS概述 5.4.2 键盘输入 5.4.3 显示输出 5.4.4 打印输出 5.5 软中断处理程序举例 5.5.1 打印I/O程序 5.5.2 时钟显示程序 5.6 习题 第6章 简单应用程序的设计 6.1 字符串处理 6.1.1 字符串操作指令 6.1.2 重复前缀 6.1.3 字符串操作举例 6.2 十进制算术运算调整指令及应用 6.2.1 组合BCD码的算术运算调整指令 6.2.2 未组合BCD码的算术运算调整指令 6.2.3 应用举例 6.3 DOS程序段前缀和特殊情况处理程序 6.3.1 DOS程序段前缀PSP 6.3.2 对Ctrl+C键和Ctrl+Break键的处理 6.4 TSR程序设计举例 6.4.1 驻留的时钟显示程序 6.4.2 热键激活的TSR程序 6.5 习题 第7章 高级汇编语言技术 7.1 结构和记录 7.1.1 结构 7.1.2 记录 7.2 宏 7.2.1 宏指令的定义和使用 7.2.2 宏指令的用途 7.2.3 宏指令中参的使用 7.2.4 特殊的宏运算符 7.2.5 宏与子程序的区别 7.2.6 与宏有关的伪指令 7.2.7 宏定义的嵌套 7.3 重复汇编 7.3.1 伪指令REPT 7.3.2 伪指令IRP 7.3.3 伪指令IRPC 7.4 条件汇编 7.4.1 条件汇编伪指令 7.4.2 条件汇编与宏结合 7.5 源程序的结合 7.5.1 源程序的结合 7.5.2 宏库的使用 7.6 习题 第8章 模块化程序设计技术 8.1 段的完整定义 8.1.1 完整的段定义 8.1.2 关于堆栈段的说明 8.1.3 段组的说明和使用 8.2 段的简化定义 8.2.1 存储模型说明伪指令 8.2.2 简化的段定义伪指令 8.2.3 存储模型说明伪指令的隐含动作 8.3 模块间的通信 8.3.1 伪指令PUBLIC和伪指令EXTRN 8.3.2 模块间的转移 8.3.3 模块间的信息传递 8.4 子程序库 8.4.1 子程序库 8.4.2 建立子程序库 8.4.3 使用举例 8.5 编写供Turbo C调用的函 8.5.1 汇编格式的编译结果 8.5.2 汇编模块应该遵守的约定 8.5.3 参传递和寄存器保护 8.5.4 举例 8.6 习题 第二部分 提高部分 第9章 80386程序设计基础 9.1 80386寄存器 9.1.1 通用寄存器 9.1.2 段寄存器 9.1.3 指令指针和标志寄存器 9.2 80386存储器寻址 9.2.1 存储器寻址基本概念 9.2.2 灵活的存储器寻址方式 9.2.3 支持各种据结构 9.3 80386指令集 9.3.1 据传送指令 9.3.2 算术运算指令 9.3.3 逻辑运算和移位指令 9.3.4 控制转移指令 9.3.5 串操作指令 9.3.6 高级语言支持指令 9.3.7 条件字节设置指令 9.3.8 位操作指令 9.3.9 处理器控制指令 9.4 实方式下的程序设计 9.4.1 说明 9.4.2 实例 9.5 习题 第10章 保护方式下的80386及其编程 10.1 保护方式简述 10.1.1 存储管理机制 10.1.2 保护机制 10.2 分段管理机制 10.2.1 段定义和虚拟地址到线性地址转换 10.2.2 存储段描述符 10 2.3 全局和局部描述符表 10.2.4 段选择子 10.2.5 段描述符高速缓冲寄存器 10.3 80386控制寄存器和系统地址寄存器 10.3.1 控制寄存器 10 3.2 系统地址寄存器 10.4 实方式与保护方式切换实例 10.4.1 演示实方式和保护方式切换的实例(实例一) 10.4.2 演示32位代码段和16位代码段切换的实例(实例二) 10.5 任务状态段和控制门 10.5.1 系统段描述符 10.5.2 门描述符 10.5.3 任务状态段 10.6 控制转移 10.6.1 任务内无特权级变换的转移 10.6.2 演示任务内无特权级变换转移的实例(实例三) 10.6.3 任务内不同特权级的变换 10.6.4 演示任务内特权级变换的实例(实例四) 10.6.5 任务切换 10.6.6 演示任务切换的实例(实例五) 10.7 80386的中断和异常 10.7.1 80386的中断和异常 10.7.2 异常类型 10.7.3 中断和异常的转移方法 10.7.4 演示中断处理的实例(实例六) 10.7.5 演示异常处理的实例(实例七) 10.7.6 各种转移途径小结 10.8 操作系统类指令 10.8.1 实方式和任何特权级下可执行的指令 10.8.2 实方式及特权级0下可执行的指令 10 8.3 只能在保护方式下执行的指令 10.8.4 显示关键寄存器内容的实例(实例八) 10.8.5 特权指令 10.9 输入/输出保护 10.9.1 输入/输出保护 10.9.2 重要标志保护 10.9.3 演示输入/输出保护的实例(实例九) 10.10 分页管理机制 10.10.1 存储器分页管理机制 10.10.2 线性地址到物理地址的转换 10.10.3 页级保护和虚拟存储器支持 10.10.4 页异常 10.10.5 演示分页机制的实例(实例十) 10.11 虚拟8086方式 10.11.1 V86方式 10.11.2 进入和离开V86方式 10.11.3 演示进入和离开V86方式的实例(实例十一) 10.11.4 V86方式下的敏感指令 10.12 习题 第11章 80486及Pentium程序设计基础 11.1 80486程序设计基础 11.1.1 寄存器 11.1.2 指令系统 11.1.3 片上超高速缓存 11.2 80486对调试的支持 11 2.1 调试寄存器 11.2.2 演示调试故障/陷阶的实例 11.3 Pentium程序设计基础 11.3.1 寄存器 11.3.2 指令系统 11.3.3 处理器的识别 11.3.4 片上超高速缓存 11.4 基于Pentium的程序优化技术 11.4.1 流水线优化技术 11.4.2 分支优化技术 11.4.3 超高速缓存代化技术 11.5 习题 第三部分 上机实验指导 第12章 实验指导 12.1 实验的一般步骤 12.2 汇编器和连接器的使用 12.2.1 MASM的使用 12.2.2 LINK的使用 12.2.3 TASM的使用 12.2.4 TLINK的使用 12.3 调试器DEBUG的使用 12.3.1 启动和退出DEBUG 12.3.2 命令一览 12.3.3 利用DEBUG调试程序 12.4 Turbo Debugger的使用 12.4.1 启动和退出TD 12.4.2 利用TD调试汇编程序 参考文献 附录 Pentium指令与标志参考表

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值