标题:IBM-PC把我给难了,请教ing..
只看楼主
执着的F
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-11-2
 问题点数:0 回复次数:3 
IBM-PC把我给难了,请教ing..

小弟初学汇编,一知半解.甚不了解,想请各路高人帮忙.解释一下以下代码的各段意思.在此,先谢谢了.~
data segment
messageStart db 10,?
message db 10 dup('$')
messageEnd db 13,10,'$' ;用于在输出前回车换行
data ends
;----------------------------------------------------------------------------------
code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax

mov ax,data
mov ds,ax

lea dx,messageStart
mov ah,0ah
int 21h ;输入到message缓冲区

mov dx,offset messageEnd
mov ah,9
int 21h ;输出回车换行

mov dx,offset message
mov ah,9
int 21h ;输出我们输入的结果


ret
main endp
code ends
end start

搜索更多相关主题的帖子: ing 
2007-11-02 21:05
执着的F
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-11-2
得分:0 
..为什么没有人帮我..
好惨哦 ..!!
2007-11-02 23:55
Lotus_Hypnos
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-24
得分:0 

这就是一段输入字符串并回显的程序吧,楼主的几句注释已经很清楚了,我再加几句


data segment ;定义数据段
messageStart db 10,?
message db 10 dup('$')
messageEnd db 13,10,'$' ;用于在输出前回车换行
data ends
;----------------------------------------------------------------------------------
code segment ;定义代码段
main proc far ;远过程调用
assume cs:code,ds:data
start:
push ds ;PSP的段地址(段地址在DS中)进栈
sub ax,ax
push ax ;PSP首地址的偏移地址(为0)进栈

mov ax,data ;用户数据段赋值
mov ds,ax

lea dx,messageStart ;将messageStart的偏移地址送dx
mov ah,0ah ;10号功能调用
int 21h ;输入到message缓冲区

mov dx,offset messageEnd ;将messageEnd的偏移地址送dx
mov ah,9 ;9号功能调用
int 21h ;输出回车换行

mov dx,offset message ;将message的偏移地址送dx
mov ah,9 ;9号功能调用
int 21h ;输出我们输入的结果


ret
main endp
code ends
end start


2007-11-03 09:44
执着的F
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-11-2
得分:0 

谢谢..~!!

2007-11-05 21:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-182999-1-1.html




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

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