|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:
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 [bx]
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:53 编辑
完全听不懂你的表述,请用截图进行补充。
a 的大小是 20h,b 的大小是 10 h,所以,在程序结束前(ds、ss 被赋值后),ss 比 ds 大 0002h,cs 比 ss 大 0001h,属于正常情况。
|
|