看的是王爽的书,有个例子就是将8个数反序
- Assembly code
assume cs:code,ds:data,ss:stack data segment WORD 0000h,1111h,2222h,3333h,4444h,5555h,6666h,7777h data ends stack segment WORD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 stack ends code segment start: mov ax,stack mov ss,ax mov sp,20h mov ax,data mov ds,ax mov bx,0 mov cx,8 s: push [bx] add bx,2 loop s mov bx,0 mov cx,8 s1: pop [bx] add bx,2 loop s1 mov ax,4c00h int 21h code ends end start
数据一共是8个字16个字节,栈为啥不能定义为16个字节
我将stack segment减一半
mov sp,20h修改为mov sp,10h后压栈到第6个程序就崩溃了
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
程序在开始运行时,系统就会往栈里存入一些数据,这些程序在程序退出时会用到。
对于这些小程序,用.com格式来写更方便一些。
------解决方案--------------------
嗯。说的都在理。学习。