- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言_第3章
目标程序运行时才能给段寄存器置值。 CS和SS的内容将由操作系统自动设置; DS和ES的内容须由用户程序指令设置; 一定要将段首址送入DS或ES中,才能保证目标程序运行时,能正确地产生数据存储单元的物理地址。 何时将段首址置入对应的段寄存器? 3.3.4 段定义伪指令 (8) 3. 置汇编地址计数器伪指令 汇编地址计数器:$ 表示当前语句的偏移地址 汇编程序在翻译程序时,每遇到一个新的段,就将汇编地址计数器置0。 3.3.4 段定义伪指令 (9) 4. 地址定义伪指令 ORG 地址表达式 地址表达式的值表示紧跟它后面的指令/语句将从这个地址偏移处开始。其意义也就是将汇编地址计数器$的值设置成地址表达式的值。 DATA SEGMENT BUF1 DB 1234 Y DW $ - BUF1 ORG $+6 BUF2 DB 1234‘ Z DB $ - BUF2 X DB $ - BUF1 DATA ENDS 3.3.4 段定义伪指令 (10) 格式:END [表达式] 功能:遇到该语句时,汇编工作停止。 如果END后面带有表达式,其值必须是一存储器地址。该地址为程序的启动地址,即该程序运行时第一条被执行指令的地址。 如果不带表达式,则说明该程序不能单独运行,这时,它往往是作为一个子模块供另外的程序调用。 3.3.5 源程序结束伪指令 注意:不可将END语句错误地安排在程序中间。 3.4 常用的DOS系统功能调用 一、什么是DOS系统调用? 调用操作系统提供的功能。提供的功能调用包括:设备管理、文件管理、目录管理及其它功能。参见P326。 二、DOS系统功能调用的一般过程 将调用号放入寄存器AH中,置好入口参数,然后执行 INT 21H。 三、常用的输入/输出系统功能调用 程序退出并返回操作系统 键盘输入 (输入一个字符) 显示输出 (输出一个字符) 显示字符串 键盘输入字符串 3.4 常用的DOS系统功能调用 调用格式:MOV AH,4CH MOV AL, 退出码 (如0、0FFH等) INT 21H 功能:终止当前程序并返回操作系统, 其中AL是返回值(退出值)。 (3.4) 1.程序退出并返回操作系统 说明:首先检查按键是否为Ctrl+Break,若是,则从本调用的执行中退出;否则,将按键的ASCII码→AL,同时将该字符送显示器显示。 调用格式:MOV AH,1 INT 21H 功能:等待从键盘输入一个字符并将输入字符的ASCII码送入寄存器AL中。 (3.4) 2.键盘字符输入(1号调用) 功能:将DL中的字符送显示器显示,若DL中为〈CTRL〉+〈Break〉的ASCII码,则从本调用的执行中退出。 调用格式: MOV DL,待显示字符的ASCII码 MOV AH, 2 INT 21H 例1 MOV DL,’3’ MOV AH,2 INT 21H ;显示字符3 (3.4) 3.显示字符(2号调用) 功能:将从数据区DS:DX所指向的单元开始,依次显示字符,直到遇到’$’为止。 调用格式:LEA DX,字符串首偏移地址 MOV AH,9 INT 21H Q: 此处的’$’与汇编地址计数器$有何不同? (3.4) 4.显示字符串(9号调用) .386 DATA SEGMENT USE16 BUF DB 0AH,0DH,′I WISH YOU SUCCESS! $′ DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA DX,BUF MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START C3_085P.asm (3.4) 4.显示字符串(9号调用) C3_085J2.asm STACK SEGMENT STACK
原创力文档


文档评论(0)