汇编 - 栈

作者: Jorunk | 来源:发表于2018-08-03 21:57 被阅读13次

  • 栈:是一种具有特殊的访问方式的存储空间(后进先出, Last In Out Firt,LIFO)


  • 8086会将CS作为代码段的段地址,将CS:IP指向的指令作为下一条需要取出执行的指令
  • 8086会将DS作为数据段的段地址,mov ax,[address]就是取出DS:address的内存数据放到ax寄存器中
  • 8086会将SS作为栈段的段地址,任意时刻,SS:SP指向栈顶元素
  • 8086提供了PUSH(入栈)和POP (出栈)指令来操作栈段的数据
    比如push ax是将ax的数据入栈,pop ax是将栈顶的数据送入ax

push ax


思考

栈顶越界-push

栈顶越界-pop

栈顶越界

push - pop

  • 在8086中,push、pop操作的数据都是2个字节的

练习

栈段

  • 对于8086来说,在编程时,可以根据需要,将一组内存单元定义为一个段

  • 我们可以将一组长度为N(N<=64KB)、地址连续、起始地址为16倍数的内存单元,当做栈空间来使用,称为栈段。比如用10010H ~ 1001FH这段内存空间当做栈来使用,我们就可以认为10010H ~ 1001FH是一个栈段,它的段地址为1001H,长度为16字节

  • 如何使用push、pop等栈操作指令访问我们定义的栈- 段?
    用SS存放栈段的段地址,用SP存放栈顶的偏移地址

段的总结

练习


相关文章

  • 汇编 - 栈

    栈 栈:是一种具有特殊的访问方式的存储空间(后进先出, Last In Out Firt,LIFO) 8086会将...

  • 汇编(八)

    现场保护 平栈内:外平栈.png *现场保护 函数调用 xcode函数汇编

  • C语言10- C语言与汇编

    20:C语言与汇编 20.1:调用约定之汇编 x86调用约定: cdecl:参数从右往左依次入栈,调用者栈平衡(C...

  • 汇编四、栈

    栈 栈:是一种具有特殊的访问方式的存储空间(后进先出, Last In Out Firt,LIFO) SP和FP寄...

  • 汇编二 — 栈

    栈 栈:是一种具有特殊的访问方式的存储空间(后进先出, Last In Out Firt,LIFO) SP和FP寄...

  • 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的

    实验: 首先,写一个简单的c程序 通过命令编译c程序为汇编代码 打开汇编代码 简化汇编代码 假设目前栈底位置为10...

  • 入门二

    [转]ARM64 汇编 寄存器 汇编指令栈栗子 逆向工程绕不过的一部分就是汇编指令的分析。我们iPhone里面用到...

  • 崩溃分析汇编基础

    崩溃分析汇编基础 栈、调用栈、栈帧 栈 在当今多数计算机体系架构中,函数的参数传递、局部变量的分配和释放都是通过操...

  • [pwnable.tw]-Start

    程序很简单,直接用汇编int 80实现的读写退出,没开NX保护,然后有个栈溢出漏洞,先泄漏栈地址,然后往栈里写sh...

  • ARM汇编之栈

    创建进程的时候,会分配内存作为栈。实际栈指令(push,pop)是其他指令的别名,实际指令是STR、LDR或者其延...

网友评论

    本文标题:汇编 - 栈

    本文链接:https://www.haomeiwen.com/subject/hyauvftx.html