几个问题,希望得到回复
本帖最后由 刘策策 于 2016-11-14 16:25 编辑一:在某程序中,定义了262B的数据段data,那么程序载入内存,该段实际占用的内存空间是 B。
1、256
2、262
3、272
4、512
答案为啥是272,多出来的10B是啥
二:生成EXE之后用Debug加载后,查看寄存器内容如下:
ds=0b2d es=0b2d ss=0b3d cs=0b3e ip=0000
程序的起始地址的段地址是 。
1、0b3e
2、0b2d
3、0b3d
4、0
答案是0b3d,书上说ds=0b2d,所以程序从0b3d开始,为啥??
三:(1)下列指令序列不能够实现把内存地址0:202h中的字节数据送入al功能的是 。
1mov ax,0
mov ds,ax
mov bx,202h
mov al,
2mov ax,0
mov ds,ax
mov bx,200h
mov al,
3mov ax,0
mov ds,ax
mov bp,202h
mov al,
4 mov ax,0
mov ds,ax
mov bp,200h
mov al,ds:
答案是3,想知道为啥是3, 我感觉都对着的
我也不太明白,先MARK一下吧,同求解答! 三:(1)下列指令序列不能够实现把内存地址0:202h中的字节数据送入al功能的是
调试到这里你明白问题了吧,其他的我就不帮你调试了,你自己调试吧,记住,一定要学会调试 一、选272的原因是256+16,因为段都是16的整数倍。
二、不知道..
三、各选项都是利用了寄存器相对寻址的方式,在没有段前超越的情况下,默认的是ss,其它的都是ds. 代码农民 发表于 2016-11-15 12:55
一、选272的原因是256+16,因为段都是16的整数倍。
二、不知道..
1,256也是16的整数倍啊,
3,照你这么说的话,那4也是错的了
人造人 发表于 2016-11-15 12:37
三:(1)下列指令序列不能够实现把内存地址0:202h中的字节数据送入al功能的是
感觉调试了之后还是不太懂,能更详细点吗
刘策策 发表于 2016-11-15 13:03
1,256也是16的整数倍啊,
3,照你这么说的话,那4也是错的了
因为272是16倍数里面能容下所定义数据段的最小尺寸.....最省 代码农民 发表于 2016-11-15 13:07
因为272是16倍数里面能容下所定义数据段的最小尺寸.....最省
懂了懂了,从262B起,272B是16的最小整数集 刘策策 发表于 2016-11-15 13:11
懂了懂了,从262B起,272B是16的最小整数集
只是第二个我也不知道是为什么... 代码农民 发表于 2016-11-15 13:13
只是第二个我也不知道是为什么...
0b3dh-0b2dh=10h,也许和这有关系,但我也不太懂 第2个看书
91页
4.9 程序执行过程的跟踪 人造人 发表于 2016-11-15 23:48
第2个看书
91页
4.9 程序执行过程的跟踪
ok.非常感谢
刘策策 发表于 2016-11-15 13:05
感觉调试了之后还是不太懂,能更详细点吗
SP BP的默认段地址是SS。
第三跟第四的差别就是前有没有加了DS:
页:
[1]