• 汇编学习(4)汇编指令举例


    ☞字节:记为byte,一个字节由8个bit组成,可以存在8位寄存器中。
    字:word,一个字由两个字节组成。
    注:一个字可以存在一个16位寄存器中,这个字的高位字节和低位字节自然就存在这个寄存器的高8位寄存器和低8位寄存器中。
    十六进制中的一位相当于二进制数中的四位。


    ☞几条汇编指令

    汇编指令      操作                        高级语言描述
    mov ax,18     将18送入寄存器AX            AX=18
    mov ah,78     将78送入寄存器AH              AH=78
    add ax,8      将寄存器AX中的数值加8          AX=AX+8
    mov ax,bx     将寄存器BX中的数据送入AX       AX=BX
    add ax,bx     将AX和BX中的数值相加送入AX     AX=AX+BX
    




    ☞程序段中指令的执行情况一

    程序段中的指令        指令执行后AX中的数据        指令执行后BX中的数据
    mov ax,4E20H        4E20H                0000H
    add ax,1406H        6226H                0000H
    mov bx,2000H        6226H                2000H
    add ax,bx           8226H                2000H
    mov bx,ax           8226H                8226H
    add ax,bx           ?                    8226H
    



    分析:
    程序段中的最后一条指令add ax,bx,在执行前ax和bx中的数据都是8226H,相加后所得值为1044CH,
    但是ax为16位寄存器,只能存储4位十六进制的数据,所以最高位1不能在ax中保存,ax中的数据为044CH。

    ☞程序段中指令的执行情况二

    程序段中的指令        指令执行后AX中的数据        指令执行后BX中的数据
    mov ax,001AH        001AH                0000H
    mov bx,0026H        001AH                0026H
    add al,bl           0040H                0026H
    add ah,bl           2640H                0026H
    add bh,al           2640H                4026H
    mov ah,0            0040H                4026H
    add al,85H          00C5H                4026H
    add al,93H          ?                    4026H
    


    分析:程序段中的最后一条指令add al,93H,在执行前,al中的数据为C5H,相加后所得值为
    158H,但是al为8位寄存器,只能存放两位十六进制数据,所以最高位的1丢失,ax中的数据位0058H。
    注:此时al是作为一个独立的8位寄存器来使用的,和ah没有关系,CPU在执行这条指令时认为ah和al是两个不相关的寄存器。
    如果执行add ax,93H 则低8位的进位会存储到ah中。

    ☞在进行数据传送或运算时,要注意指令的两位操作对象的位数应当是一致的,
    例如:

    mov ax,bx
    mov bx,cx
    mov ax,18H
    mov al,18H
    add ax,bx
    add ax,2000
    


    是正确的指令

    mov ax,bl
    mov bh,ax
    mov al,2000
    add al,100H
    


    等是错误的指令

    笔记的过程,就是思考的过程。放慢了阅读速度,加长了思考消化时间。

  • 相关阅读:
    spring security如何添加无需鉴权的接口?
    框架——切面框架——aop——weave timing
    框架——切面框架——aop——@Aspect
    框架——切面框架——aop——集成Spring
    ffmpeg q:v 2 表示输出的图片质量,一般是1到5之间(1 为质量最高)
    衡量机器学习模型的三大指标:准确率、精度和召回率。
    Pytorch的permute函数,将tensor的维度换位
    深度学习模型评价指标(准确率、精确率、召回率、F1、ROC、AUC)
    【项目】项目155
    【项目】项目154
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/2942818.html
Copyright © 2020-2023  润新知