- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学习汇编前你应该知道的知识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
- DB23_T 3866-2024冰上龙舟赛事组织服务规范.docx
- DB32 2163-2012 棉纱单位可比综合电耗限额及计算方法.docx
- DB32∕T 2429-2013 棉花田间生长发育观察记载规范.docx
- DB23_T 3820-2024 工业互联网综合平台数据质量管理规范.docx
- DB23_T 3474-2023非煤智慧矿山信息系统技术规范.docx
- DB3201_T 1106-2022 工程地质层划分技术规范.docx
- DB33T 2515-2022公共机构“零碳”管理与评价规范.docx
- DB3301_T 0415-2023 装修垃圾收运处置管理规范.docx
- DB3311/T 106―2019“丽水山居”民宿服务要求与评价规范.docx
- DB3201T 1127-2022 慈善捐赠受赠管理规范.docx
文档评论(0)