汇编基础

原创 2018年04月16日 09:52:50

call

当执行call指令的时候,会将call fun的下一条指令的偏移地址ip入栈。每次ret的时候,会执行一次出栈操作。 相当于将栈顶元素的值赋给ip。

所以,如果在调用的函数中栈平衡有问题,即入栈后没有出栈,将导致返回时ip出现问题,从而无法继续执行call fun的下一条指令。

assume:ds:data,cs:code ,ss:stack
data segment
    db 20 dup(2)
    str db "hello world$"
data ends
stack segment
    db 20 dup(1)
stack ends

code segment  
    start: 
        mov ax,data
        mov ds,ax

        call print  
        mov ax,1234h

    print:
        mov dx,offset str
        mov ah,9h
        int 21h  
        ;mov bx,1234h
        ;push bx    ;执行此步操作,栈平衡被打破,程序将出现问题。
        ret


        mov ah, 0
        int 16h   
    end start

ret
code ends
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DlMmU/article/details/79956694

汇编基础入门知识

学习汇编前你应该知道的知识   1、汇编需要什么工具和程序,到哪里下载?     目前阶段,汇编程序仅需要两个程序就够了。masm.exe,link.exe。 前者是编译程序,后者是链接程序...
  • bytxl
  • bytxl
  • 2015-08-24 09:34:34
  • 11283

汇编语言程序的基础

汇编语言是一种低级语言,一个用C&C++写的程序要通过编译器生成相应的汇编程序,在通过汇编器生成相关包含对应机器指令码的目标文件, 在通过链接器将所有的相关的目标文件链接生成一个可执行程序文件。在li...
  • a254373829
  • a254373829
  • 2013-01-03 15:26:17
  • 709

汇编入门学习笔记 (一)—— 基础知识、寄存器

疯狂的暑假学习之 汇编入门学习笔记 (一) 参考:《汇编语言》 王爽  第一,二章 一、基础知识  1. 用汇编语言编写程序的工作过程 汇编本质就是为了方便程序员,把二进制代码用汇编...
  • billvsme
  • billvsme
  • 2014-07-01 00:05:50
  • 3486

汇编fs段

FS寄存器指向当前活动线程的TEB结构(线程结构) 偏移  说明 000  指向SEH链指针 004  线程堆栈顶部 008  线程堆栈底部 00C  SubSystemTib 010  ...
  • u010326355
  • u010326355
  • 2013-05-15 13:02:42
  • 520

汇编基础(一)

汇编基础
  • qq78442761
  • qq78442761
  • 2016-10-07 15:08:47
  • 1952

逆向工程(一):汇编、逆向工程基础篇

文章转自Freebuf,作者VillanCh,很精彩,担心下次再找,暂时保留下来以备学习查阅。如果你也喜欢,请联系作者转载! ============================...
  • u013648937
  • u013648937
  • 2015-11-24 20:38:26
  • 396

汇编基础教程(二)——常用汇编指令之运算指令

原文地址:http://www.tinpont.com/knowledge/assembly_instruction_operator.html ------------------------...
  • candycat1992
  • candycat1992
  • 2012-10-29 18:38:27
  • 1958

ARM汇编编程基础

(一) -- ARM CPU寄存器 本系列文章节选自本人所著《深入浅出嵌入式底层软件开发》。 本系列文章,所需代码请从以下地址下载: http://download.csdn...
  • zzsfqiuyigui
  • zzsfqiuyigui
  • 2014-08-05 23:56:24
  • 5102

汇编实验

实验报告题目编写一个可以自行启动的计算机,不需要在现有操作系统环境中运行的程序 实现 显示时间、修改时间、变色、重启、进入操作系统...
  • qq_31481187
  • qq_31481187
  • 2017-01-15 12:22:48
  • 16013

几个特殊的ARM汇编符号

      汇编程序中以.开头的名称并不是指令的助记符,不会被翻译成机器指令,而是给汇编器一些特殊指示,称为汇编指示(Assembler Directive)或伪操作(Pseudo-operation...
  • band210094
  • band210094
  • 2010-11-26 20:09:00
  • 371
收藏助手
不良信息举报
您举报文章:汇编基础
举报原因:
原因补充:

(最多只允许输入30个字)