当前位置: 代码迷 >> 汇编语言 >> 初学汇编有个地方搞不明白,该怎么解决
  详细解决方案

初学汇编有个地方搞不明白,该怎么解决

热度:904   发布时间:2013-02-26 00:00:00.0
初学汇编有个地方搞不明白
看的是王爽的书,有个例子就是将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 segmentstart:    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 endsend start

数据一共是8个字16个字节,栈为啥不能定义为16个字节
我将stack segment减一半
mov sp,20h修改为mov sp,10h后压栈到第6个程序就崩溃了

------解决方案--------------------------------------------------------
探讨
看的是王爽的书,有个例子就是将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……

------解决方案--------------------------------------------------------
探讨
看的是王爽的书,有个例子就是将8个数反序

数据一共是8个字16个字节,栈为啥不能定义为16个字节
我将stack segment减一半
mov sp,20h修改为mov sp,10h后压栈到第6个程序就崩溃了


------解决方案--------------------------------------------------------
程序在开始运行时,系统就会往栈里存入一些数据,这些程序在程序退出时会用到。

对于这些小程序,用.com格式来写更方便一些。
------解决方案--------------------------------------------------------
嗯。说的都在理。学习。
  相关解决方案