chneft 发表于 2022-9-2 17:40:51

程序运行完成后,ds,ss,sp的段地址相隔不为10h是为什么

代码如下:
assume cs:code,ss:b,ds:a
a segment
        dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends

b segment
        dw 0,0,0,0,0,0,0,0
b ends

code segment
start:                mov cx,8
                        mov sp,16
                        mov ax,b
                        mov ss,ax
                        mov ax,a
                        mov ds,ax
                        mov bx,0
s:
                        push
                        add bx,2
                        loop s
                       
                        mov ax,4c00h
                        int 21h
code ends
end start
,附一问,在debug调试程序最开始查看b段地址时,发现前8个字都为0,但执行了Mov ss,ax之后,再查看ss段地址,发现 前八个字的空间被部分覆盖,这又是为什么
在运行完程序退出前,用r命令查看段寄存器,发现相隔不为10h,求大佬回答!!!

jackz007 发表于 2022-9-2 17:49:23

本帖最后由 jackz007 于 2022-9-2 17:53 编辑

          完全听不懂你的表述,请用截图进行补充。
          a 的大小是 20h,b 的大小是 10 h,所以,在程序结束前(ds、ss 被赋值后),ss 比 ds 大 0002h,cs 比 ss 大 0001h,属于正常情况。

chneft 发表于 2022-9-2 19:22:00

本帖最后由 chneft 于 2022-9-2 19:25 编辑

jackz007 发表于 2022-9-2 17:49
完全听不懂你的表述,请用截图进行补充。
          a 的大小是 20h,b 的大小是 10 h,所以, ...

你好,我现在等级不够上传不了图片,请问a的大小为什么是20h呢

jackz007 发表于 2022-9-2 19:26:02

chneft 发表于 2022-9-2 19:22
你好,我现在等级不够上传不了图片,请问a的大小为什么是20h呢

      10h 个 word 它不就是 20h 个 byte 吗?

chneft 发表于 2022-9-2 19:37:02

本帖最后由 chneft 于 2022-9-2 19:42 编辑

哦哦
,明白了,谢谢

编程追风梦 发表于 2022-9-2 19:52:21

听不懂,啥意思?

chneft 发表于 2022-9-2 20:00:59

编程追风梦 发表于 2022-9-2 19:52
听不懂,啥意思?

哪里没懂

编程追风梦 发表于 2022-9-3 09:18:31

我不懂到底是怎么回事,莫名其妙的就设置了一个最佳答案,刷分行为会被举报的

chneft 发表于 2022-9-4 20:36:42

我提的问题,我听懂了,当然就把他设置为最佳答案了呀,这没有问题,我问你哪里不懂你不说。可以举报的,没关系
页: [1]
查看完整版本: 程序运行完成后,ds,ss,sp的段地址相隔不为10h是为什么