注册 登录
编程论坛 汇编论坛

有哪位达人帮我解释下程序的意思?

leiting 发布于 2007-01-23 09:22, 621 次点击

我的程序如下,请解释下每句指令的意思,非常感谢!!

DATA SEGMENT

STRING DB 100

DB 0

DB 100 DUP('$')

DATA ENDS

STACK SEGMENT

STT DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV DX,OFFSET STRING

MOV AH,0AH

INT 21H

MOV AH,2

MOV DL,0AH

INT 21H

MOV DL,0DH

INT 21H

MOV AH,9

LEA DX,STRING+2

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

4 回复
#2
曾小2007-01-23 18:16

我只是试了一下,你参考参考啊!
DATA SEGMENT

STRING DB 100

DB 0

DB 100 DUP('$') ;这三句可以合成这样:STRING DB 100,0,DUP('$'),100表示缓冲区存储的最大字符数,0也可以写成其他的如?表示实际输入的字符数

DATA ENDS

STACK SEGMENT

STT DB 100 DUP(?) ;定义了堆栈.100个保留空间

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV DX,OFFSET STRING

MOV AH,0AH

INT 21H ;输入字符到STRING

MOV AH,2

MOV DL,0AH

INT 21H ;输出回车符

MOV DL,0DH

INT 21H ;输出换行符

MOV AH,9

LEA DX,STRING+2 ;输出STRING 字符串

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

[此贴子已经被作者于2007-1-23 18:16:52编辑过]

#3
流浪_汉2007-01-23 22:31

不知道这是不是8086的汇编程序,好象有一些指令不对啊
比如说
MOV AH,0AH
INT 21H ;
应该是这样的啊
MOV DL,0AH
MOV AH,2
INT 21H ;
还有一些,不知道是为什么????

#4
曾小2007-01-25 12:24
是这样啊!
#5
餹餜2007-02-02 01:41
死脑筋……
1