• 汇编 运算介绍


    算术运算符

    加法:

    Add ax, bx     ;bx+ax => ax   加法运算

    带进位加法指令 adc 32位加法

    Mov  ax , 0fffh 假设第一个数低位

    Mov  dx, 0 假设第一个数高位 0ffffh

    Mov bx, 1 假设第二个数低位

    Mov cx, 0 假设第二个数高位    00001h

    Add ax, bx 先低位相加得到      0000h

    Adc dx, cx 高位相加 在加进位   0001h

    输出需要将axdx拼接起来输出

    自增加法  3个指令周期

    INC  ax       Inc  byte ptr [bx]

    减法

    带进位减法 sbb 32位减法

    Sub  ax, bx 低位相减

    Sbb  dx, bx 高位借位

    自减

    Dec ax

    补码  neg   0 - n 可以得到补码(不是取反加一)  3个指令周期

    Mov ax-1

    Neg ax

    比较指令 cmp

    只比较,不改变操作数    cmp axbx

    乘法指令 170个指令周期

    分有无符号

    无符号  mul      有符号  imul

    8位 相乘     ah <- al  ah <- al 高位放ah mul  alal

    16位相乘     dx <- ax  dx <- ax 高位放dx imul ax ax

    除法指令 184个指令周期

    也是分有无符号

    无符号  div      有符号  idiv

    8位 相除     al <- ax  al <- ax ax相除结果放在al div axbl

    16位相除     ax <- dx ax <- dx dxax相除结果放在axidiv ax bx

    8位相除  ah放余数  al放除数

    16位相除  dx放余数 ax放除数

    符号扩展  2个指令周期

    Cbwal的符号扩展到ah   al  ffh    cbw后  ax ffffh

    Cwdax的符号扩展到dx ax ffffh   cwb后  dx ffffh

    十进制调整指令

    八进制 155+166 =343     看做十进制计算为 321    前面进位后面加差值2

    进制调整指令就是计算方式用十进制计算方式转为八进制

    Bcd码  4位表示十进制 0001  0000   表示十进制的10

    Daa  :  bcd

    Mov al19h

    Add al1 al  ==  1ah

    Daa al == 20h

      

    Aaa :非bcd

    Mov ax0109h

    Add ax1 ; ax  ==  010fh

    Aaa ax ==  020h

    Daa  :  bcd

    Mov al19h

    Add al1 al  ==  1fh

    Daa   al  ==  19h

      

    Aas :非bcd

    Mov ax0200h

    Add ax1 ; ax  ==  01ffh

    Aas ax  ==  0109h

    乘法 aam   触发 aad

    位操作指令

    And     &取位  置零

    Mov al ,1111 1111 B b表示2进制

    And al, 1000 0000 B al == 1000 0000b   80h

    Mov al ,1111 1111 B

    And al, 0111 1111 B al ==0111 1111b  7fh

    Or  al 1 ;置1

    Not  al ;取反

    Xor al 0fh ;异或  安位取反  或者清零 al   ==  00h

    Xor  alal

    位移需要8个指令周期  

    Mov al ffh 1111 1111h

    Shl al 1  ;逻辑左移《 feh  1111 1110 b 相当于乘法

    Shr al 1  ;逻辑右移》 7fh  0111 1111 b

    Sal  al 1 ;算术左移《 feh 1111 1110 b     和逻辑左移没有区别 完全等价

    Sal  al 1  ;算术右移》  ffh 1111 1111 b 相当于除法

    学如逆水行舟,不进则退。 博客园技术交流群 群 号:1073255314 (本群没人,刚刚建立 -_-!!! )
  • 相关阅读:
    【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_测试报告中有接口失败才通知(4)
    【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_集成Jenkins定时发送企业微信+邮件(3)
    【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_ant调用jmeter脚本并生成报告(2)
    【CI/CD】Jenkins查询及自定义工作空间(自由风格项目、maven项目)
    【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_jmeter实现脚本及响应超时、失败重试(1)
    day 18 面向对象-类与类之间的关系
    day 17 面向对象-成员
    day16 面向对象
    day14 内置函数2
    day013 内置函数
  • 原文地址:https://www.cnblogs.com/Mj-NaijAm/p/13618673.html
Copyright © 2020-2023  润新知