- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理和接口技术-第5章 汇编程序设计_11
第5章 汇编语言程序设计;主要内容:;什么是汇编语言源程序?;DATA SEGMENT ; 数据段
hello db Welcome to the world of assembler!$
DATA ENDS ; 数据段结束
CODE SEGMENT ; 代码段
assume cs:CODE, ds:DATA
start: mov ax, data
mov ds, ax
mov dx, offset hello
mov ah, 9 ; 显示$结尾的字符串
int 21h
mov ah, 1 ; 等待按键
int 21h
mov ah, 4ch ; 返回DOS
int 21h
CODE ENDS ; 代码段结束
END start ; 整个程序结束,指定程序入口点;什么是汇编程序?;5.1 汇编语句格式; [标识符/语句标号] 助记符 [操作数序列] [;注释] ;DATA SEGMENT ; 数据段
hello db Welcome to the world of assembler!$
DATA ENDS ; 数据段结束
CODE SEGMENT ; 代码段
assume cs:CODE, ds:DATA
start: mov ax, data
mov ds, ax
mov dx, offset hello
mov ah, 9 ; 显示$结尾的字符串
int 21h
mov ah, 1 ; 等待按键
int 21h
mov ah, 4ch ; 返回DOS
int 21h
CODE ENDS ; 代码段结束
END start ; 整个程序结束,指定程序入口点;主要内容:;5.7 汇编语言程序的上机过程 ;汇编语言上机过程;系统功能调用——由OS提供的一组实现特殊功能的子程序供程序员在程序中调用,以减轻编程工作量。
DOS操作系统中的系统功能调用有两种,一种称为DOS功能调用,另一种称为BIOS功能调用。
DOS中这些功能调用是以软中断的方式提供的。
DOS功能调用由INT 21H提供。
BOIS中的功能调用常用的有INT 10H,INT 16H,INT 13H等。;INT 2lH功能大致可以分为四个方面:
设备管理、目录管理、文件管理和其它。;【功能号01H】;例:程序中有时需要用户对提示做出应答。
GET_KEY: MOV AH,1 ;等待键入字符
INT 21H ;结果在AL中
AND AL,0DFH ;转大写
CMP AL,’Y’ ;是’Y’?
JZ YES ;是,转YES
CMP AL,’N’ ;是’N’?
JZ NO ;是,转NO
JMP GET_KEY ;否则继续等待输入
YES: …
…
NO: …;【功能号02 H】;【功能号05 H】;【功能号09 H】;例:在屏幕上显示:’HELLO,WORLD!’
;在数据段定义字符串:
DATA SEGMENT
STR1 DB ‘HELLO,WORLD!$’
DATA ENDS
;在代码段中进行显示输出
MOV AH, 9
LEA DX, STR1
INT 21H
;【功能号0A H】;数据输入缓冲区的格式; 若用户键入的字符数(包括回车)≥定义的N1,本功能调用将不再接收新的键入,且光标不再向右移动。
例:设在数据段定义键盘缓冲区如下:
STR1 DB 10,?,10 DUP(?)
调用DOS功能的0AH号功能的程序段为:
LEA DX,STR1
MOV AH,0AH
INT 21H
此程序段最多从键盘接收10个按键(包括回车)。;DATA?? SEGMENT
String DB? 100, ?, 100 DUP(?)
DATA??? ENDS?
CODE? SEGMENT
??????? … …
?????? MOV? AX, DATA
?????? MOV? DS, AX
??????? … …
?????? LEA?? DX, String
??????
文档评论(0)