zoukankan      html  css  js  c++  java
  • 汇编学习笔记11

    第11讲讲了剩下两个减法指令: NEG 和 CMP

    NEG OP 对OP进行求补,然后将结果送入OP,操作数可以是通用寄存器和存储单元。当OP为8位-128或16位-32768时,结果为它自身。当OP为0时,CF位为0,其他时候都为1。NEG操作其实是 OP = 0 - OP。

    CMP OP1, OP2 比较操作,用OP1 - OP2, 与SUB规则相同,不同之处在于不把结果送回OP1,根据标志位来判断比较的结果。ZF = 0时两操作数相等,否则不相等。当不相等时,如果是无符号数,根据CF位来判断大小;如果是有符号数,根据OF和SF来判断大小。有符号数不相等时怎么判断?如果OF = 0,无溢出,SF = 0时OP1 > OP2,否则OP1 < OP2。如果OP = 1,有溢出,SF = 0时,OP1 < OP2, 此时,OP1为负, OP2为正,SF = 1时,OP1 > OP2,此时, OP1为正, OP2为负。

    剩下时间讲加减法的应用。

    例: 已知 字存储单元 X, Y, Z, 将 X + (Y + Z – 25H) 送入Z中

    MOV AX, Y

    ADD AX, Z

    SUB AX, 25H

    ADD AX, X

    MOV Z, AX

    例: 已知双字存储单元 X, Y, Z, 将 X + (Y + Z – 25H) 送入Z中

    MOV AX, Y

    MOV DX, Y + 2

    ADD AX, Z

    ADC DX, Z + 2

    SUB AX, 25H

    SBB DX, 0

    ADD AX, X

    ADC DX, X +2

    MOV Z, AX

    MOV Z+2, DX

  • 相关阅读:
    learning scala view collection
    scala
    learning scala dependency injection
    learning scala implicit class
    learning scala type alise
    learning scala PartialFunction
    learning scala Function Recursive Tail Call
    learning scala Function Composition andThen
    System.Threading.Interlocked.CompareChange使用
    System.Threading.Monitor的使用
  • 原文地址:https://www.cnblogs.com/hailong/p/1899434.html
Copyright © 2011-2022 走看看