![]() |
#2
zaixuexi2012-01-01 18:00
|

assume cs:code,ds:data,ss:stack
data segment
db'ibm '
db'dec '
db'dos '
db'vax '
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
mov bx,0
mov cx,4
s0: push cx
mov si,0
mov cx,3
s: mov al,[bx+si]
and al,11011111b
mov [bx+si],al
inc si
loop s
add bx,16
pop cx
loop s0
mov ax,4c00h
int 21h
code ends
end start
我开始执行r,mov ax,1419 得到了stack的地址,data segment
db'ibm '
db'dec '
db'dos '
db'vax '
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
mov bx,0
mov cx,4
s0: push cx
mov si,0
mov cx,3
s: mov al,[bx+si]
and al,11011111b
mov [bx+si],al
inc si
loop s
add bx,16
pop cx
loop s0
mov ax,4c00h
int 21h
code ends
end start
d查看了里面-d 1419:0 f 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
我执行了-t 2
d查看了里面-d 1419:0 f 00 00 00 00 00 00 19 14-00 00 08 00 1A 14 0A 0E
为什么里面的值会发生了变化,那位给我指导指导???????????????