(1) Compile, link, load with Debug, track the following program, and then answer the question
1:数据不变
2:cs:076c
ss:076b
ds:076a
3:data段段地址:X-2
stack段段地址: X-1
(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
1:数据不变
2:cs:076c
ss:076b
ds:076a
3:data段段地址:X-2
stack段段地址: X-1
4:占用空间:N%16==0?N:N+1
(3)
end start
1:数据不变
2.cs:076A
ss:076E
ds:076D
3.data:X+3
stack:X+4
4.代码段程序可以运行,从上往下运行,cs:ip指向最上端开始部位
5.编写程序,将a段和b段中的数据相加
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,c
mov ds,ax
mov bx,0
mov cx,8
s: mov byte ptr [bx],a:[bx]
add byte ptr [bx],b:[bx]
inc bx
loop s
mov ax,4c00h
int 21h
code ends
ends start
6.程序如下,编写code段中的代码,用push指令将a段中的前8个字型数据,逆序存储到b段中
assume cs:code
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 ax,a
mov ds,ax
mov bx,0
mov cx,8
s: push [bx]
loop s
mov bx,0
mov cx,8
s2: pop b:[bx]
loop s2
mov ax,4c00h
int 21h
code ends
end start