《汇编语言与计算机系统组成》第四章例题-3

【例1】什么是“程序可见”可见的寄存器?

解:程序可见寄存器指在用户程序中用到的寄存器,他们由指令来指定。

【例2】80x86微处理器的 基本结构寄存器组 包括哪些寄存器?各有何用途?

解:

1)通用寄存器

        存放操作数或用作地址指针。32位处理器是EAX(加个E这样),16位处理器是AX,AX高8位和低8位可分为两个8位寄存器AH和AL。

        (1)数据寄存器

                EAX(算术运算的主要寄存器,操作数和结果数据的累加器)

                EBX(常用作基址寄存器,作为DS段的数据指针)

                ECX(串和循环操作的计数器)

                EDX(I/O指针,也常用于数据寄存)

        (2)指针及变址寄存器

                ESI(DS段的数据指针,串操作的源指针)

                EDI(ES段的数据指针,串操作的目标指针)

                ESP(栈顶指针(SS段中),存放栈顶地址)

                EBP(SS段数据指针(不一定指向栈顶))

2)段寄存器

        6个16位段寄存器,段寄存器存放段基址或选择子(在实地址模式下存放段基址,保护模式下存放选择子)

        CS(代码段寄存器)

        DS(数据段寄存器)

        SS(堆栈段寄存器)

        ES(附加段寄存器)

        FS和GS(80386以上才有)

3)控制寄存器

        EIP(指令指针):存放将要执行的下一条指令的偏移地址。

        FLAGS(标志寄存器):存放条件码标志、控制标志和系统标志。

【例3】80x86微处理器 标志寄存器 中的各标志位有什么意义?

解:

1)条件码标志

        进位标志(CF):在进行算术运算时,如果最高位(对字操作是第15位,对字节操作是第7位)产生进位或借位,则CF置1,否则置0。在移位指令中,CF用来存放移出的代码(0或1)。这个标志常用于指示无符号数溢出和多字节数的加减运算。

        奇偶标志(PF):当操作结果的最低位字节中1的个数为偶数时置1,奇数置0。用来为机器中传送信息时可能产生的代码出错情况提供检验条件。

        辅助进位标志(AF):在进行算术运算时,如果低字节中的低4位(第3位向第4位)产生进位或借位,则AF置1,否则置0.AF主要用于BCD码十进制运算的矫正。

        零标志(ZF):进行算数或逻辑运算时,如果结果为0,则ZF置1,否则ZF置0。

        符号标志(SF):其值等于运算结果的最高位。如果把指令执行结果看作带符号数,那么结果为负,SF置1;结果为正,SF置0。

        溢出标志(OF):进行符号数和算术运算时,如果运算结果超出补码表示数的范围N,即溢出时,则OF置1,否则OF置0。对无符号数操作时,则可以忽略此标志。

2)控制标志

        方向标志(DF):用于串操作指令中控制处理信息的方向。即当DF为1,每次操作使变址寄存器SI和DI减小,使串操作从高地址向低地址方向处理;当DF为0,则使SI和DI增大,使串操作从低地址向高地址方向处理。

3)系统标志

        (十位系统标志,在此不列举)

【例4】画出示意图,简述 实地址模式 下存储器寻址的过程。

 

【例5】画出示意图,简述 保护模式 下存储器寻址的过程。

 

【例6】比较 实地址模式 和 保护模式 下逻辑地址的异同。

相同点:逻辑地址均由存放于16位段寄存器的信息和偏低地址组成。

不同点:实地址模式下,段寄存器当中存放的是段基址,偏移地址为16位;保护模式下,段寄存器当中存放的是选择子,偏移地址为32位。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值