答:资料汇编目录的操作步骤如下。1.将光标放在前言页的最后一个字符后,单击插入-分隔符-下一页-确定。2.在下一个生成的页面上制作目录,点击插入-引用-索引和目录-目录-显示级别设置为1-确定。
3.删除"前言和生成的目录中的行。4.更改页码(1)将光标放在前言页,点击插入-页码-格式-将数字格式改为罗马数字(ⅰ,ⅱ,ⅲ)-确定。(2)将光标放在这一页目录中,点击插入-页码-去掉首页页码前的勾号-格式-将起始页码改为0-确定。(3)右键单击目录-更新字段-仅更新页码。
汇编语言中的标签受某些规则的约束:
1.不能是程序集中的关键字,如DB、DW、
首先,dos必须支持中文显示。
汇编语言通过调用控制台输出程序将一个字符输出到显示区。比如要显示字符A,就需要将字符A的ASCII码传送给显示程序(这个显示程序是BIOS系统中的一个显示子程序,是一个软中断调用)。
普通的中文编码是指两个特殊的ASCII码显示一个汉字。得到要显示的汉字的两个ASCII码后,可以连续调用显示程序,将这两个ASCII码依次提交给显示程序。
1.注册
共有16个32位寄存器,即:
4个数据寄存器(EAX、EBX、ECX、EDX)。
2个索引和指针寄存器(ESI和EDI);2个指针寄存器(ESP和EBP)。
6个段寄存器(ES、CS、SS、DS、FS、GS)。
1指令指针寄存器(EIP);1个标志寄存器(EFlags)。
2.数据寄存器
数据寄存器主要用于存储操作数和运算结果等信息,从而节省了读取操作数时占用总线和访问存储器所需的时间。
一个32位CPU有四个32位通用寄存器:EAX、EBX、ECX和EDX。对低16位数据的访问不会影响高16位。
这些低16位寄存器分别命名为AX、BX、CX和DX,与之前CPU中的寄存器一致。
四个16位寄存器可以分成八个独立的8位寄存器(ax:ah~al,bx:BH~bl,CX:ch~cl:dx:dh~dl).
每个寄存器都有自己的名称,可以独立访问。程序员可以使用这个"可分离"灵活处理字的数据寄存器特性/
字节的信息。
AX和al通常被称为累加器,使用累加器的运算可能需要较少的时间。累加器可用于乘法、除法、输入/输出和其他运算。
它们经常被使用。
BX被称为基址寄存器,可以用作内存指针。
CX被称为计数寄存器,用于控制循环和字符串操作期间的周期数。在位操作中,移位多个位时,使用cl。
指示偏移量的位数。
DX称为数据寄存器,可用于参与默认操作数的运算,并在乘法和除运算时存储I/O的端口地址。
在16位CPU中,AX、BX、CX和DXcant用作基址和变址寄存器来存储存储单元的地址,但在32位CPU中。
它的32位寄存器EAX、EBX、ECX和EDX不仅能传输数据、暂存数据和保存算术和逻辑运算结果,而且
作为指针寄存器,这些32位寄存器用途更广。
3.变址寄存器
32位CPU有两个32位通用寄存器ESI和EDI,其低16位对应于前一个CPU中的SI和DI,以及低16位数据
访问不会影响高16位数据。
ESI、EDI、SI、DI称为变址寄存器,主要用来存储一个段中存储单元的偏移量,它们可以用来实现各种存储器。
操作数的寻址为访问不同地址形式的存储单元提供了方便。
索引寄存器不能划分为8位寄存器。作为通用寄存器,它还可以存储算术逻辑运算的操作数和运算结果。
它们可以作为通用的内存指针,在字符串操作指令的执行过程中对它们有特殊的要求,它们也有特殊的
功能。
4.指针式计量器
32位CPU有两个32位通用寄存器EBP和ESP,其中低16位对应于前一个CPU中的BP和SP,低16位。
根据访问,不影响高16位数据。
EBP、ESP、BP、SP称为指针寄存器,主要用来存储堆栈中存储单元的偏移量,它们可以用来实现各种存储器。
操作数的寻址为访问不同地址形式的存储单元提供了方便。
指针寄存器不能划分为8位寄存器。作为通用寄存器,它还可以存储算术和逻辑运算的操作数和运算结果。
它们主要用于访问堆栈中的存储单元,并规定:
BP是基址指针寄存器,可以直接访问堆栈中的数据。
SP是栈指针寄存器,只能访问栈顶。
5.分段寄存器
根据存储器分段的管理模式来设置分段寄存器。存储单元的物理地址由段寄存器的值和偏移量组成。
,以便将两个位数较少的值合并成一个可访问的值。求更大物理空间的内存地址。
32位CPU有六个段寄存器,如下所示:
CS:代码段寄存器ES:附加段寄存器
DS:数据段寄存器FS:附加段寄存器
SS:堆栈段寄存器GS:附件段寄存器
在一个16位CPU系统中,只有4个段寄存器,所以程序在任何时候最多可以直接访问4个正在使用的段。
在32位微机系统中,它有6个段寄存器,所以在这种环境下开发的程序最多可以同时访问6个段。
32位CPU有两种不同的工作模式:实模式和保护模式。在每种模式中,段寄存器的作用是不同的,相关的规定
简要描述如下:
实模式:段寄存器CS、DS、ES和SS与前一CPU中相应的段寄存器以及存储单元的逻辑具有相同的含义
地址仍然是"段地址:偏移地址"。为了访问某个内存段中的数据,必须使用段寄存器和存储单元的偏移地址。
保护模式:在这种模式下,情况要复杂得多。装入段寄存器的不再是段值,而是一个名为"选择器和。
6.指令指针寄存器
32位CPU将指令指针扩展到32位,并将其记录为EIP。EIP的低16位与先前CPU中的IP具有相同的功能。
指令指针EIP和IP是代码段中存储下一次要执行的指令的偏移地址。在具有预取指令功能的系统中,指令将在下一次执行。
指令行通常被预取到指令队列中,除非有分支,所以在理解它们的功能时不考虑指令队列的存在。
条件。
在实模式下,因为每个段的最大范围是64KB,所以EIP的高16位必须全部为0。此时,它相当于只使用它的低16位。
位IP来反映程序中指令的执行顺序。
7.标志寄存器
1.运算结果标志位。共6个,包括:CF进位标志、PF奇偶标志、AF辅助进位标志、ZF零标志、
溢出标志位的SF符号标志位。
2.状态控制标志位。一共三个,包括:TF跟踪标志,IF中断许可标志,DF方向标志。
以上标志位在第七章都有提及,这里不再赘述。现在,让我们让我们来谈谈32位标志寄存器中添加的四个标志位。
1.输入输出特权标志IOPL。
IOPL由两个二进制位表示,也称为I/O特权级别字段,它指定执行I/O指令所需的特权级别。如果当前
的特权级别小于或等于IOPL的值,则可以执行I/O指令,否则将出现保护异常。
2.嵌套任务标志NT。
NT用于控制中断返回指令IRET的执行。具体规定如下:
(1)当NT0时,用保存在堆栈中的值恢复EFlags、CS和EIP,并执行例行中断返回操作。
(2)NT1时,通过任务转换实现中断返回。
3.重启标志RF。
RF用于控制是否接受调试故障。规定:当RF0时,表示接受,否则拒绝。
4.虚拟8086模式徽标。
如果VM1,则表示处理器工作在虚拟8086模式,否则,处理器工作在通用保护模式。
8、32位地址寻址模式
最后说说32位地址的寻址。前面我们研究了16位地址的寻址,在32位微机系统中有五种。
本文提供了一种更加灵活、方便、复杂的存储器寻址方法,进一步扩大了存储器地址的寻址范围。
当使用16位寄存器访问存储单元时,只有基址寄存器(BX和BP)和变址寄存器(SI和DI)可以用作。
偏移地址的一部分,但用32位寄存器寻址时,就没有这种限制了。所有32位寄存器(EAX、EBX、ECX、
EDX、ESI、EDI、EBP和ESP)都可以是偏移地址的组成部分。
使用32位地址偏移寻址时,偏移地址可分为三部分:
1.32位基址寄存器(EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP)。
2.一个32位索引寄存器(EAX、EBX、ECX、EDX、ESI、EDI和EBP),可以乘以1、2、4和8。
3.一个8位至32位的偏移常数。
例如,指令:MOVEBX,[EAXEDX*2300]
Eax是基址寄存器,edx是索引寄存器,300H是偏移常数。
以上三个部分可以任意组合,可以省略其中的一两个。
以下是一些32位地址寻址指令:
Movax,[123456]
Moveax
Movebx,[ecx*2]
Mov[[EAXEDX*8300]显式段寄存器是GS。
Movax,[esp]默认段寄存器是SS。