zoukankan      html  css  js  c++  java
  • 8089汇编 运算符指令

    8089汇编 运算符指令

    汇编指令不区分大小写、指令 寄存器,数字(进制符)

    mov、add 指令

    一、根据下面指令分析

    复制代码
    ; 存入、将001AH值存储ax寄存器
    mov ax, 001AH
    ; 存入、将0026H值存储bx寄存器
    mov bx, 0026H
    ; 相加、al高位1A + bl高位26、结果存入al
    add al, bl
    ; 相加、ah低位00 + bl高位26、结果存入ah
    add ah, b
     ; 存入、0存入ah低位、直接影响前8bit
    mov ah,0
    ; 相加、al高位 + 93H、结果存入al、注意:al存储为8bit,结果大于8bit溺出进位将被丢弃。
    add al,93H
    复制代码

     mov 操作数据

    段寄存器不能直接存数据、需要通过通用寄存器存储数据、在通过通用寄存器存储到段寄存器。

     加法add、减法sub、递增INC

    段寄存器与寄存器不能计算、内存内存单元与内存单元不能计算。

    一、加法指令

     二、减法指令

    三、递增INC

    数值递增+1

    格式:INC 寄存器

    与and、或or

    一、与 and

    and:与运算
    功能:比较两个值、二进制中不同值中会输出0、相同值中会输出1
    使用:

    • // 结果会存放到目标内
    • and 目标字节,源字节

     二、或 or

    or:或运算
    功能:比较两个值、二进制中不同值中会输出1、相同值中会输出0
    使用:

    • // 结果会存放到目标内
    • or 目标字节,源字节

     除div、乘mul

    一、除div

    div是除法指令,使用div作除法的时候

    • 被除数:(默认)放在AX 或 DX和AX中
    • 除数:8位或16位,在寄存器或内存单元中

    div指令格式

    • div 寄存器
    • div 内存单元

    除法情况

    1)被除数/除数=商,余
    2)17/8=2,余1
    3)结果:高位放余数、低位放商
    4)8位除法:16位/8位
    5)16位除法:32位/16位
    6)AX和DX是固定用来做除法运算的寄存器

     二、乘mul

    与除法类似需要乘数结果存入AX的高低位

    mul 寄存器
    mul 内存单元

    (1)计算100*10

    分析:100和10小于255,可以做8位乘法
    程序:
    mov al,100
    mov bl,10
    mul bl
    结果: (ax)=1000(03E8H)

    (2)计算100*10000

    分析:100小于255,可10000大于255,所以
    必须做16位乘法
    程序:
    mov ax,100
    mov bx,10000
    mul bx
    结果: (dx)=000FH,(ax)=4240H,
    即:F4240H=1000000

    进位加法adc、带借位减法sbb

    一、带进位的加减法

    1、说明

    adc是带进位加法指令 ,它利用了CF位上记录的进位值。
    格式:adc 操作对象1,操作对象2
    功能:操作对象1=操作对象1+操作对象2+CF
    例:adc ax,bx 实现的功能是:(ax)=(ax)+(bx)+CF

     二、带借位的减法指令

    1、说明

    sbb:带借位减法指令
    格式:sbb 操作对象1,操作对象2
    功能:操作对象1=操作对象1–操作对象2–CF
    与sub区别:利用CF位上记录的借位值
    比如:sbb ax,bx
    实现功能: (ax) = (ax) – (bx) – CF

    应用:对任意大的数据进行减法运算
    例如:计算003E1000H–00202000H结果放在ax,bx中

    mov bx,1000H
    mov ax,003EH
    sub bx,2000H
    sbb ax,0020H
  • 相关阅读:
    UVA297:Quadtrees(四分树)
    hive查询ncdc天气数据
    hadoop-hive查询ncdc天气数据实例
    servlet课堂笔记
    servlet课堂笔记
    代码 c++实现动态栈
    代码 c++实现动态栈
    代码,用c++实现线性链表
    代码,用c++实现线性链表
    后海日记(8)
  • 原文地址:https://www.cnblogs.com/liujunjun/p/12494088.html
Copyright © 2011-2022 走看看