- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学习汇编前你应该知道的知识4汇编程序.doc
第四讲汇编程序
4. 1汇编程序框架
data SEGMENT 数据段,编程者可以把数据都放到这个段里
....数据部分
数据格式是:标识符db/dw数据。
data ENDS数据段结束处。
edata SEGMENT *附加数据段,编程者可以把数据都放到这个段里
....附加数据部分
edata ENDS,附加数据段结束处。
code SEGMENT*代码段,实际的程序都是放这个段里。
ASSUME CS:code, DS:data, ES:edata 告诉编译程序,data 段是数据段 DS, code 段是代 码段CS
start:MOV AX, data前面的start表示一个标识位,后面用到该位,如果用不到,就可以不加
MOV DS, AX 这一句与上一行共同组成把data赋值给DS。段寄存器.
MOV AX, edata
MOV ES, AX 与前一句共同组成edata-ES
程序部分
MOV AX, 4C00h,程序退出,该句内存由下一行决定。退出时,要求oh必须是4c。
INT 21h
code ENDS代码段结束。
END start*整个程序结束,并且程序执行时山start那个位置开始执行。
上面就是一个程序的框架结构。在这个结构屮,冇三个段,DS, ES, CSo这三个段分别存数据, 附加数据,代码段。
4. 2编写我们的Hello, world思路。
开始编写我们的第一个程序。
程序要求:显示一个“Hello, Mr. 286. ”怎么样?
思路:
1要显示一个字符串,根据丽面我让?你们记的七八个指令够吗?答案是:不仅够,而且还用不完。 首先定义一下总可以吧。
hellostr db Hello, Mr. 286.
最后的$不要忘了。
2首先要考虑的问题就是找中断,找到合适的屮断,该中断就能帮我们完成这个显示任务。我找 到(在哪找到的,怎么找到的,别问我,到网上或书上都能找到): 中断INT 21H功能09H 功能描述:输岀一个字符串到标准输出设备上。如果输岀操作被巫定向,那么,将无法判断磁 盘已满
入口参数:AH=09H
DS:DX=待输出字符的地址
说明:待显示的字符串以$作为其结束标志
出口参数:无 山上而看到,我们所需要作的就是把DS指向数据段,DX指向字符串的地址,AH筹于9H,调用21h 中断。
mov ds,数据段地址
lea dx, hellostr * hellostr 已在前面 1 中定义了。
mov ah, 9h
int 21ho
由于只要在调用int 21h之前把准备的东西准备齐就行了,所以int 21h前面三行的顺序并不重 要。
3退出程序,运行完总要退出呀。再查屮断手册
中断INT 21H功能4CH
功能描述:终止程序的执行,并可返回一个代码
入口参数:AH=4CH
AL =返回的代码
出口参数:无
mov ah, 4Ch
mov al, 0
int 21h
或
mov ax, 4c00h
int 21h
这里需要说明的是返回代码冇什么用,返冋给谁?返回给操作系统,因为是操作系统DOS调用的 这个程序,这个返冋值可以通过批处理中的error level得到,这里不多说明,实际上操作系统 很少处理这一值,因此al你随便写什么值彩响都不大。
3程序实现
data SEGMENT
msg DB Hello, Mr. 286. $
data ENDS
code SEGMENT
ASSUME CS:code, DS:data
start:MOV AX, data
MOV DS, AX
lea dx, msg
mov ah, 9h
int 21h
MOV AX, 4C00h
INT 21h
code ENDS
END start
4.4编译运行。
把上面程序保存成hello286. asmjn,就可以编译运行了。进入DOS,进入汇编口录,如果还没 下载,到前面找下载地址。
E:\Download\Masmmasm hello286. asm
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.
Object filename [hello286. OBJ]:
Source listing [NUL. LST]:
Cross-reference [NUL. CRF]:
50408 + 415320 Bytes symbol space free
0 Warning Errors
0 Severe Errors
说明:上面连续三个回车,表示我耍的都是默认值。下面是零个警告,零个严重错误,(当然了, 我的程序还敢错吗?)
E:
您可能关注的文档
- 存货管理xiaoyun.doc
- 孙佰贵数据挖掘.doc
- 季度财务工作计划及打算.doc
- 季节性施工方案04948.doc
- 学hadoop需要什么基础.doc
- 学业水平测试回归书本材料化学1专题3.doc
- 学中医心得体会(精选4篇).doc
- 学习和加强党性修养发言稿一.doc
- 学习对象技术及其应用78218.doc
- 学习德国制造新申亚麻等麻纺企业向“中国创造”转变.doc
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)