深入了解汇编的第一个简单程序(对初学者很重要)
2011-03-16 21:27
447 查看
纯属个人见解:
A SEGMENT ;定义变量的开始,a只是一个标号,可任意定,和下面的a ends配合相当于{},在里面定义变量
ASTRING DB 0AH , 0DH, "HELLO WORD",'$';如果想输出小写的hello world应使用单引号
A ENDS
B SEGMENT ;同理,b也是一个标号而已
ASSUME CS:B,DS:A ;把b定义为程序段,A设置为数据段
HELLO:
MOV DX ,A ;这里使用ax、bx、cx 、dx都没有关系,它们是通用寄存器
MOV DS ,DX
MOV DX ,OFFSET ASTRING
MOV AH ,09H
INT 21H ;以上三句合起来是输出字符串astring的
MOV AH,4CH ;如果是ax,就用4c00h,因为ah是8位,而ax是16位。其实都是调用4c中断
INT 21H ;通过给AH寄存器赋值4CH,然后调用INT 21H指令,计算机就会根据AH寄
;存器中的值执行相应的操作?
;其中4CH是返回DOS系统,还可给AH寄存器赋其他值
B ENDS
END HELLO ;这句话说明了程序的入口点是hello,所有必不可少,从hello到end hello实际是{},里面都是它的代码
下面是一个hello world程序的规范性代码,替换上方的A 和B:
;;;Hello World
DATA SEGMENT
STRING DB 'Hello World!!!',0AH,0DH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
A SEGMENT ;定义变量的开始,a只是一个标号,可任意定,和下面的a ends配合相当于{},在里面定义变量
ASTRING DB 0AH , 0DH, "HELLO WORD",'$';如果想输出小写的hello world应使用单引号
A ENDS
B SEGMENT ;同理,b也是一个标号而已
ASSUME CS:B,DS:A ;把b定义为程序段,A设置为数据段
HELLO:
MOV DX ,A ;这里使用ax、bx、cx 、dx都没有关系,它们是通用寄存器
MOV DS ,DX
MOV DX ,OFFSET ASTRING
MOV AH ,09H
INT 21H ;以上三句合起来是输出字符串astring的
MOV AH,4CH ;如果是ax,就用4c00h,因为ah是8位,而ax是16位。其实都是调用4c中断
INT 21H ;通过给AH寄存器赋值4CH,然后调用INT 21H指令,计算机就会根据AH寄
;存器中的值执行相应的操作?
;其中4CH是返回DOS系统,还可给AH寄存器赋其他值
B ENDS
END HELLO ;这句话说明了程序的入口点是hello,所有必不可少,从hello到end hello实际是{},里面都是它的代码
下面是一个hello world程序的规范性代码,替换上方的A 和B:
;;;Hello World
DATA SEGMENT
STRING DB 'Hello World!!!',0AH,0DH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
相关文章推荐
- 深入理解计算机系统读书笔记之一个简单汇编程序的调试分析
- 很重要的一些计算机概念,可能对初学者深入的了解计算机有一些帮助
- 汇编第一个程序 Hello World (初学者与入门)
- 第一个程序02 - 零基础入门学习汇编语言21
- Intellij Idea12第一个安卓程序开发(HelloWorld)及简单讲解Android
- 1_简单的C程序反汇编及分析
- Opencv第一个简单程序
- VC6.0配置汇编环境并编写第一个Hello World程序
- Win32汇编--开始了解窗口程序
- 第一个工程2,-写个简单的测试程序
- 简单c程序汇编代码分析
- [网易云课堂]Linux内核分析(一)——简单C程序汇编代码分析
- Linux下的一个简单汇编程序, .long声明数据的长度问题!
- 第1节 反汇编一个简单的C程序【Linux内核分析】
- 从简单程序了解Linux下Makefile用法
- Android_002_第一个简单的程序
- 关于java第一个简单程序错误原因
- 初学者:我的第一个curses程序为何无法编译!
- SpringMVC -- 第一个简单的程序
- Linux内核分析课程--通过反汇编一个简单的c程序,分析汇编代码并理解计算机如何工作的