| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 813 人关注过本帖
标题:汇编语言程序问题
只看楼主 加入收藏
雨枫
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2010-6-4
收藏
 问题点数:0 回复次数:1 
汇编语言程序问题
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调试的时候要带一个参数?

搜索更多相关主题的帖子: 汇编语言 
2010-06-05 20:34
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:0 
80h这个位置是exe程序的参数区。

DOS在执行exe程序时会在exe执行程序头部建立(program segment prefix,简称 PSP)就是exe的执行环境块。

debug调试不一定要带参数。你也可以用L + N 命令加载调试这个exe文件。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-07-05 15:25
快速回复:汇编语言程序问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085540 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved