. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->包含多个段的程序
主题 : :  程序6.4编译执行,发现的一个问题,想请教一下,谢谢  [待解决] 回复[ 2次 ]   点击[ 313次 ]  
longphui
[帖 主] [ 发表时间:2012-10-02 00:44 ] 
荣誉值:0
信誉值:0
注册日期:2012-08-31 19:01
程序6.4,我自己练习编译连接后debug,然后-r查看得:
-r
AX=0000  BX=0000  CX=005C  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0B8E  ES=0B8E  SS=0B9E  CS=0BA1  IP=0000  NV UP EI PL NZ NA PO NC
0BA1:0000  B89F0B     MOV   AX,0B9F
发现DS和SS的值相差10h
而按书上4.9《程序执行过程的追踪》上所讲应该是DS和CS相差10h
fpamc
[第2楼] [ 回复时间:2012-10-02 09:06 ] 
荣誉值:30
信誉值:4
注册日期:2012-01-01 16:36
ds是程序的入口地址。也就是程序段前缀(PSP)。由于PSP的大小是100h(放入段寄存器就是10h)。
ss是定义的数据的起始地址。所以与ds相差10H。
cs就是程序将要运行的第一条指令的地址。也就是开始标号指向的指令的地址。
es嘛,忘了。
自己debug哈,多多观察,多多实验就会明白了。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved