码迷,mamicode.com
首页 > 编程语言 > 详细

用汇编语言写的第一个DOS程序

时间:2015-08-31 19:04:00      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

今天整理电脑时,看到两三年前学习汇编语言时写的显示“Hello”的程序。不禁感叹那个时候学得如此用心,同样的功能,我竟然用了四种写法。现贴出源码,为了以后继续学习,也为了给初学者一点启发。(删掉注释了,感觉注释老对不齐,影响美观。)

程序使用MASM5.0编译(谁让书上用的那么古老……)

第一种:

ASSUME CS:CODE

CODE SEGMENT
    DB HELLO,$
START:
    MOV AX,CODE
    MOV DS,AX
    MOV DX,00H
    MOV AH,09H
    INT 21H
    MOV AH,00H
    INT 16H
    MOV AH,4CH
    INT 21H
CODE ENDS
END START

第二种:

ASSUME CS:CODE,DS:DATA

DATA SEGMENT
    DB HELLO,$
DATA ENDS

CODE SEGMENT
START:
    MOV AX,DATA
    MOV DS,AX
    MOV DX,00H
    MOV AH,09H
    INT 21H
    MOV AH,00H
    INT 16H
    MOV AH,4CH
    INT 21H
CODE ENDS
END START

第三种:

ASSUME CS:CODE
CODE SEGMENT
    DB HELLO,$
    NOP
    PUSH CS
    POP DS
    MOV DX,00H
    MOV AH,09H
    INT 21H
    MOV AH,00H
    INT 16H
    MOV AH,4CH
    INT 21H
CODE ENDS
END

第四种:

ASSUME CS:CODE,DS:DATA,ES:STACK

DATA SEGMENT
    DB HELLO,$
DATA ENDS

STACK SEGMENT
    DB 8 DUP (?)
STACK ENDS

CODE SEGMENT
    PUSH CS
    POP SS
    PUSH CS
    POP DS
    MOV SP,00H
    MOV BX,00H
    PUSH [BX]
    ADD BX,02H
    PUSH [BX]
    ADD BX,02H
    PUSH [BX]
    MOV DX,00H
    MOV AH,09H
    INT 21H
    MOV AH,00H
    INT 16H
    MOV AH,4CH
    INT 21H
CODE ENDS
END

 源码及编译好的程序下载,请点我;MASM5.0编译器下载,请点我

用汇编语言写的第一个DOS程序

标签:

原文地址:http://www.cnblogs.com/danwsy/p/4773476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!