zoukankan      html  css  js  c++  java
  • 汇编语言(王爽) 第10章 call和ret

    这2个指令也是转移指令,一起用的时候有特效~~~~

    10.1 ret and retf

    ret 相当于pop ip 把栈顶的字弹出到ip

    retf相当于先执行pop ip and pop cs

    10.2 call

    执行2步

    1 先把IP或cs和ip推入栈中

    2 转移到 标号或内存处

    10.3 call 标号

    call 标号

    转移范围为-32768-32767

    16位转移

    相当于执行 push ip jmp near ptr 标号

    10.4 call far ptr 标号

    相当于

    push cs

    push ip

    jmp far ptr 标号

    10.5 call ax

    push ip

    jmp ax

    10.6 call word ptr 内存单元

    相当于push ip

    jmp word ptr 内存单元

    call  dword ptr 内存单元

    相当于push cs

    push ip

    jmp dword ptr 内存单元地址

    高位放cs,低位放ip

    10.7 ret and call 配合

    assume cs:code,ds:data,ss:stack

    data segment
    dw 0123h,0456h
    data ends

    stack segment
    dw 0,0
    stack ends

    code segment
    start:mov ax,1
    mov cx,3
    call s
    mov ax,bx
    s:add ax,ax
    loop s
    ret
    mov ax,4c00
    int 21
    code ends
    end start

    这里就实现了先从s 标号执行完再执行下面的mov ax,bx的过程。可以类比高级语言的函数把。就好像函数定义在下面,执行却可以在上面,自己想的,不知道对不对

    ====================================================================

    有点困,明天写剩下的~~~~~~

  • 相关阅读:
    tensorflow入门(三)
    tensorflow入门(二)
    setTimeout
    PreResultListener
    sql 删除重复记录
    oracle dual表用途及结构详解
    oracle中的dual表
    Dubbo远程调用服务框架原理与示例
    struts2和spring的两种整合方式
    Timer和TimerTask详解
  • 原文地址:https://www.cnblogs.com/wz0107/p/5380195.html
Copyright © 2011-2022 走看看