标签:技术 段地址 def http alt inf bubuko add tar
1.
assume cs:code, ds:data, ss:stack
data segment
dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h
data ends
stack segment
dw 0, 0, 0, 0, 0, 0, 0, 0
stack ends
code segment
start: mov ax,stack
mov ss, ax
mov sp,16
mov ax, data
mov ds, ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0]
mov ax,4c00h
int 21h
code ends
end start
(1)
还是原来的0123, 0456, 0789, 0abc, 0def, 0fed, 0cba, 0987
(2)
依照上表cs=076C,ss=076B,ds=076A
(3)
code段的段地址为X,data段的段地址为X-2,stack段的段地址为X-1
段地址的长度为16H
2
assume cs:code, ds:data, ss:stack
data segment
dw 0123h, 0456h
data ends
stack segment
dw 0, 0
stack ends
code segment
start: mov ax,stack
mov ss, ax
mov sp,16
mov ax, data
mov ds, ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0]
mov ax,4c00h
int 21h
code ends
end start
如图,data中的数据依旧为0123, 0456
(2)
cs=076C,ss=076B,ds=076A
(3)
code段的段地址为X,data段的段地址为X-2,stack段的段地址为X-1
(4)\
其实就是程序段的空间分配,不管满不满,都是16h
3.
assume cs:code, ds:data, ss:stack
code segment
start: mov ax,stack
mov ss, ax
mov sp,16
mov ax, data
mov ds, ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0]
mov ax,4c00h
int 21h
code ends
data segment
dw 0123h, 0456h
data ends
stack segment
dw 0,0
stack ends
end start
(1)
还是0123, 0456
(2)
cs=076A,ss=076E,ds=076D
code:X,data:X+3,stack:X+4
(3)
还是分配16*N的空间
4.
数据段当成代码段,在编译时不会报错,但在运行时,因为错误的识别代码,所以会错误
5.
(6)
标签:技术 段地址 def http alt inf bubuko add tar
原文地址:https://www.cnblogs.com/chenshuai2016/p/10046851.html