推广 热搜: 广场  Java  Word  app  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

汇编语言输出字符的方法 材料汇编目录怎么弄?

   2023-05-06 企业服务招财猫70
核心提示:答:资料汇编目录的操作步骤如下。1.将光标放在前言页的最后一个字符后,单击插入-分隔符-下一页-确定。2.在下一个生成的页面上制作目录,点击插入-引用-索引和目录-目录-显示级别设置为1-确定。3.删

答:资料汇编目录的操作步骤如下。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。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8