汇编语言程序问题
disp macro msg lea dx,msg
mov ah,9
int 21h
mov ah,4ch
int 21h
endm
stack segment stack
db 256 dup(0)
stack ends
data segment
parm db 16 dup(?)
brtable dw offset bra,offset brb,offset brc
dw offset brd,offset bre,offset brf
msga db 'I like my IBM-PC!$'
msgb db 'How are you!$'
msgc db 'Nibao College$'
msgd db 'This is a sample$'
msge db 'Wellcome use my coputer!$'
msgf db 'Theassemder language of 8088$'
errms db 'Error!! invalid parameter!!$'
data ends
code segment
assume cs:code,ds:data,ss:stack
start: mov ax,data
mov es,ax
mov si,80h
lea di,parm
mov cx,16
cld
rep movsb
mov ds,ax
cmp parm,2
jc err
mov al,parm+2
sub al,30h
jc err
cmp al,6
jnc err
lea bx,brtable
cbw
add ax,ax
add bx,ax
jmp [bx]
err: disp errms
bra: disp msga
brb: disp msgb
brc: disp msgc
brd: disp msgd
bre: disp msge
brf: disp msgf
code ends
end start
实验步骤:
1、输入并汇编此程序。要求生成一个 .LST文件。用TYPE命令检查 .LST文件,观察宏替换命令产生的指令集。
2、将OBJ文件连接成EXE文件(假设为AA.EXE)。
3、用命令DEBUG AA.EXE XXX (XXX为任意字符串)将AA.EXE带参数调入DEBUG用D命令观察DS:0080处的命令行,记录80H处的内容和字符个数的关系。
问题:上面的程序有几个语句不懂,
mov si,80h :从80h这个地址开始的数据是什么?
为什么用debug调试的时候要带一个参数?