zoukankan      html  css  js  c++  java
  • 汇编学习(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
    


    等是错误的指令

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

  • 相关阅读:
    springboot内置分页技术
    打印正三角,倒三角,实心棱形,空心棱形
    显示Pl/Sql Developer window list窗口
    Oracle 中使用正则表达式
    前端使用pdf.js预览pdf文件,超级简单
    tomcat8踩坑:url包含|等特殊字符报错400的问题
    使用 Itext 生成PDF字节数组(文件流不落地)
    使用 Itext 生成PDF
    回车提交事件
    python爬虫之re正则表达式库
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/2942818.html
Copyright © 2011-2022 走看看