请教一个汇编程序的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 13:52:31
做了一个题,要求是把A段中前八个数据用push命令逆序覆盖后八个数据,我编了这个程序应该没错,可是debug调试根本不对.我想问一下是不是因为开头那一句的问题,我一直不懂那一句的作用,请问大家那一句干什么用的?是不是我那里错了呢?

assume cs:code,ds:a,es:b,ss:b
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,b
mov es,bx
mov bx,0
mov cx,8
s: mov ax,[bx]
mov es:[bx],ax
loop s
mov ax,a
mov ss,ax
mov sp,0020h
mov bx,0
mov cx,8
s0: push es:[bx]
add bx,2
loop s0
mov ax,4c00h
int 21h
code ends
end start
能说的再详细一点吗,我那样定义有错吗?

assume cs:code,ds:a,es:b,ss:b
这个伪指令不是定义段 要理解这个伪指令不难 我给你贴一个实例
http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=free&kind=1220&qkSg=2&qID=7172&readSg=1
这里 说得很到位 楼主再去理解一下。

定义段