汇编开篇学习
来源:互联网 发布:免冠照片制作软件 编辑:程序博客网 时间:2024/04/30 06:26
这学期开了汇编课程,初学是满头雾水,汇编编程软件,所需的环境就研究了一番,终于有了点概念。
初学下了一个“Masm for Windows 集成实验环境 2009.7”,这个有自己的界面,系统会自动生出代码,运行起来很是方便,但是,这是一个共享版的,而且有很详细的说明讲解,但是,对于初学者来说,这个集成环境简化了很多,不利于更多的编程学习,要学习还是一步步脚踏实地的实在些。下面是运行的第一个“Hello World”程序:
DATAS SEGMENT
;此处输入数据段代码
STRING DB 'Hello World!',13,10,'$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA DX,STRING
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
直接点击运行,在DOS窗口中就会出现“Hello World! ”
另下了MASM5.0版的,代码如下:
STACK_SEG SEGMENT
DW 256 DUP(?) ;分配堆栈段大小为256个字
TOP LABEL WORD ;定义堆栈栈底位置,刚开始,顶即底
STACK_SEG ENDS
DATA_SEG SEGMENT
STRING DB 'Hello,world!','$' ;定义字符串数据
DATA_SEG ENDS
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG ;建立代码段与逻辑段关联
START:MOV AX,DATA_SEG ;程序执行起始点
MOV DS,AX ;将段寄存器指向用户数据段
mov ax,STACK_SEG ;大小写不敏感
MOV SS,AX ;将堆栈指针指向用户定义堆栈段
MOV SP,OFFSET TOP
lea DX,STRING
MOV AH,9 ;在CRT显示字符串
INT 21H
MOV AH,0 ;等待按下任意键
INT 16H
MOV AH,4CH ;程序返回操作系统
INT 21H
CODE_SEG ENDS
END START
这个直接写在记事本中,然后文件后缀改为.asm,保存后进行编译。编译较为麻烦,打开dos面板,在命令提示框下进行编译
masm hello.masm
编译为hello.obj文件
然后进行连接
link hello.obj
生成hello.exe文件,打开后可看见运行结果"Hello, world!"
- 汇编开篇学习
- ARM汇编指令学习之开篇
- GNU ARM汇编--(一)开篇
- GNU ARM汇编--(一)开篇
- GNU ARM汇编--(一)开篇
- GNU ARM汇编--(一)开篇
- 游戏引擎逆向培训开篇第一节:反汇编学习C++总纲
- 汇编宏汇编学习
- 汇编学习--汇编基础
- Linux学习-开篇
- CCF学习开篇
- 开篇:linux学习小记
- STL源码学习,开篇。
- 【数据结构】学习总结【开篇】
- linux学习开篇
- J2SE的学习 开篇
- linux+arm学习开篇
- Qt学习笔记-开篇
- 梦想
- 最近想利用课余时间做一个类似屏幕录像专家的软件懂的人
- Execl中正确输入长串数字的方法
- 大家帮我看看我的错误!可能会有点多··有写菜 不好意思·
- 为生命画一片绿叶
- 汇编开篇学习
- SQL DML DDL
- 系统程序员成长计划-Write once, run anywhere(WORA)(上)
- 国庆不回家了
- 入轨
- 怎样才能学好,NET!
- 搜索引擎学习
- 设计模式 图书
- 汉江临泛