美文网首页
【汇编语言】第 11 章 标志寄存器

【汇编语言】第 11 章 标志寄存器

作者: gfson | 来源:发表于2017-07-13 11:39 被阅读0次

版权声明:本文为 gfson 原创文章,转载请注明出处。
注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢。

11.1 概述

11.2 标志介绍

  • ZF 标志
  • ZF 是零标志位。
  • 它记录相关指令执行以后,其结果是否为 0。
  • 如果结果为 0,则 ZF = 1,如果结果不为 0,则 ZF = 0。
  • PF 标志
  • PF 是奇偶标志位。
  • 它记录相关指令执行以后,其结果的所有 bit 位中 1 的个数是否为偶数。
  • 如果 1 的个数为偶数,PF = 1,如果为奇数,那么 PF = 0。
  • SF 标志
  • SF 是符号标志位。
  • 它记录相关指令执行以后,其结果是否为负。
  • 如果结果为负,SF = 1,如果非负,那么 SF = 0。
  • CF 标志
  • CF 是进位标志位。
  • 在进行无符号运算时,它记录了运算结果的最高有效位向更高位的进位值,或从更高位的借位值。
  • 如果无符号运算产生了进位或借位,则 CF =1,反之,则 CF = 0。
  • OF 标志
  • OF 是溢出标志位。
  • 在进行有符号运算时,它记录了运算结果是否发生了溢出。
  • 如果有符号运算发生了溢出,则 OF =1,反之,则 OF = 0。
  • CF 和 OF 的区别:
  • CF 是对无符号运算有意义的标志位。
  • OF 是对有符号运算有意义的标志位。
  • CF 和 OF 所表示的进位和溢出,是分别对无符号运算和有符号运算而言的,它们之间没有任何关系。

11.3 检测点 11.1 - 11.2

  • 答案:
  • 答案:

11.4 adc 指令

add 和 adc 的配合,完成对较大数据的加法

11.5 sbb 指令

11.6 cmp 指令

11.7 检测比较结果的条件转移指令

11.8 检测点 11.3

  • 答案:

(1)

  • jb s0
  • ja s0

(2)

  • jna s0
  • jnb s0

11.9 DF 标志和串传送指令

  • DF 标志
  • DF 是方向标志位。
  • 在串传送指令中,控制每次操作后 si、di 的增减。
  • DF = 0,每次操作后 si、di 递增。
  • DF = 1,每次操作后 si、di 递减。
  • 串传送指令
  • movsb
    • movsb 的功能是将 ds:si 指向的内存单元中的字节送入 es:di 中,然后根据标志寄存器 DF 的值,将 si 和 di 递增或递减。
  • movsw
    • movsw 的功能是将 ds:si 指向的内存单元中的送入 es:di 中,然后根据标志寄存器 DF 的值,将 si 和 di 递增或递减。
  • rep 指令

    • rep 的作用是根据 cx 的值,重复执行后面的串传送指令。
    • 如:rep movsbrep movsw
  • cld 和 std 指令

    • cld 指令:将标志寄存器的 DF 位置 0。
    • std 指令:将标志寄存器的 DF 位置 1。
  • pushf 和 popf 指令

    • pushf:将标志寄存器的值压栈。
    • popf:从栈中弹出数据,送入标志寄存器。

11.10 检测点 11.4

  • 答案:(ax)=45H

11.11 标志寄存器在 debug 中表示

11.12 实验 11

  • 答案:
assume cs:code
stack segment
dw 8 dup (0)
stack ends
data segment
db "Beginner's All-purpose Symbolic Instruction Code.", 0
data ends
code segment
begin:  mov ax, stack
mov ss, ax
mov sp, 16
mov ax, data
mov ds, ax
mov si, 0
call letterc
mov ax, 4c00h
int 21h
letterc:
push cx
push si
pushf
mov ch, 0
start:  mov cl, ds:[si]
jcxz zero
cmp cl, 97
jb next
cmp cl, 122
ja next
sub cl, 20h
mov ds:[si], cl
next:   inc si
jmp start
zero:   popf
pop si
pop cx
ret
code ends
end begin

相关文章

  • 汇编笔记5(标志与中断)

    第11章(标志寄存器): 标志寄存器都是16位 flag:按位起作用...

  • 【汇编语言】第 11 章 标志寄存器

    版权声明:本文为 gfson 原创文章,转载请注明出处。注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢...

  • 寄存器

     一、标志寄存器PSW 标志寄存器PSW(程序状态字寄存器PSW)标志寄存器PSW是一个16为的寄存器。它反...

  • 汇编语言学习1

    汇编语言学习(王爽2.3章) 1.代码段储存寄存器CS和指令寄存器IP共同决定代码开始执行的位置:(CS左移四位+...

  • 【汇编语言】第 2 章 寄存器

    版权声明:本文为 gfson 原创文章,转载请注明出处。注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢...

  • 硬件基础--i386标志寄存器

    i386寄存器主要包括 一个16位标志寄存器 4个内存管理寄存器 4个控制寄存器以及调试寄存器 下面先介绍标志寄存...

  • 汇编语言

    @[toc] 汇编语言 汇编语言的主体是汇编指令 操作 寄存器bx的内容送到ax中 机器指令 1000100111...

  • 00-汇编语言

    程序的本质 寄存器与内存 编程语言的发展 汇编语言的种类 常见的汇编指令 寄存器 有16个常用寄存器rax、rbx...

  • 汇编语言 学习笔记(一)

    汇编语言学习笔记 一、概论 8086,8088 构架 1. 寄存器 8个通用寄存器 AX [AH, AL] - 累...

  • 计算机的各类寄存器

    标志寄存器 作用:存放指令执行得到的各种标志等信息,标志寄存器的标志位主要用于条件转移和条件设置类指令的条件判断 ...

网友评论

      本文标题:【汇编语言】第 11 章 标志寄存器

      本文链接:https://www.haomeiwen.com/subject/cwqwhxtx.html