. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->包含多个段的程序
主题 : :  关于书中P125的一段话  [已解决] 回复[ 10次 ]   点击[ 746次 ]  
yuhuofei
[帖 主] [ 发表时间:2008-12-22 18:22 ] 
荣誉值:0
信誉值:0
注册日期:2008-11-17 21:27
书中125页图6.1下边有一段话这样写:
图6.1中,通过“DS=0B2D”,可知道程序从0B3D:0000开始存放。……

为什么要通过看DS的值呢???直接看CS、IP不是也可以知道程序从0B3D:0000开始存放吗???
不解书上为什么要这么说?
难道是因为那个PSP吗?

请指教。
wsrf
[第1楼] [ 回复时间:2008-12-28 16:00 ] 
荣誉值:33
信誉值:0
注册日期:2008-10-16 10:01
楼主说的对,是因为PSP段,它的大小是固定的256个字节。CS:IP只是指向了程序的入口地址,并不一定代表程序的起始地址。
如:
assume cs:code,ds:data
data segment
db 100 dup(0)
data ends

code segment:
db 10 dup(0)
start: mov ax,4c00h
       int 21h
code ends
end start

程序加载后,CS:IP指向了start位置,而程序的真正起始地址因该是数据段的起始地址。
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved