读书人

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

发布时间: 2012-03-01 10:25:47 作者: rapoo

初学汇编有个地方搞不明白
看的是王爽的书,有个例子就是将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格式来写更方便一些。
[解决办法]
嗯。说的都在理。学习。

读书人网 >汇编语言

热点推荐