当前位置:编程学习 > 汇编语言 >>

有关汇编语言的问题。

设程序加载后,code段的段地址为X,则data段的段地址为___?stack段的段地址为___? ASSUME CS:CODE,DS:DATA,SS:STACK DATA SEGMENT DW 0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987H DATA ENDS STACK SEGMENT DW 0,0,0,0,0,0,0,0, STACK ENDS CODE SEGMENT START: MOV AX,STACK MOV SS,AX MOV SP,16 MOV AX,DATA MOV DS,AX PUSH DS:[0] PUSH DS:[2] POP DS:[2] POP DS:[0] MOV AX,4C00H INT 21H CODE ENDS END START
答案:code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1
是按数据段、堆栈段、代码段依次排列的,
数据段   
              DW        0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987H 
是8个字,就是16个字节
堆栈段
DW        0,0,0,0,0,0,0,0
也是16个字节
地址=段地址*16+偏移量
那么段地址每增加1就是16字节
所以DS+1=SS
SS+1=CS
又CS=X,
所以DS=X-2,SS=X-1

上一个:谁知道汇编中0150H [BX] [SI]表示是怎么寻址方法啊,请写出具体的方法
下一个:汇编语言里几条语句的解释 帮帮忙 谢谢

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,