南京邮电大学微型计算机原理,南京邮电大学微型计算机原理与接口技术5-01章.ppt...

a7f4a3f590493a1e451dd952a488fd7c.gif 南京邮电大学微型计算机原理与接口技术5-01章.ppt

(118页)

67cebed24c32ca44bf7055a0e2b0a9e5.png

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

14.90 积分

汇编语言程序设计Ch. 5 汇编语言程序设计 5.1 汇编源程序的编程格式 5.2 DOS系统I/O功能调用 5.3 BIOS键盘输入功能调用 5.5分支程序 5.6循环程序 5.7子程序及其调用 5.8宏指令与条件汇编 5.9代码转换 5.10 数值计算和数据处理 5.12模块化程序设计 .486 DATA SEGMENT USE16 MESG DB ‘A‘,0DH,0AH,'$' DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX DS初值 ;以上设置 ┇ MOV AH,4CH INT 21H ;返回DOS CODE ENDS END BEG ;汇编结束语句 例: 将N1和N2两个单字节数以28为模求和→SUM单元.5.1 汇编源程序的编程格式1. EXE文件编程格式 允许源程序使用多个逻辑段,适合编写大型程序,最终能生成 .EXE文件. . 486 DATA SEGMENT USE16 N1 DB x x N2 DB x x SUM DB ? DATA ENDS STACK_ SEGMENT STACK ‘STACK’ USE16 DB 128 DUP (?) STACK_ ENDS BEG: MOV AX, DATA MOV DS, AX MOV AX,STACK_ MOV SS, AX MOV SP, 128 MOV AL,N1 ADD AL,N2 MOV SUM, AL MOV AH, 4CH INT 21H CODE ENDS END BEG 可省CODE SEGMENT USE16 ASSUME CS:CODE, DS:DATA ,SS:STACK_ 说明: . EXE文件中堆栈段的设置 a 本例以“STACK_”为段名的逻辑段,选用了 “STACK” 链接参数,DOS自动认为“ STACK_”段为堆栈段。 所以, DOS将自动给SS:SP赋初值, 因此,源程序给SS:SP赋初值的三条语句是多余的。 b 链接程序要求: . EXE文件中的源程序必须有堆栈段, 否则链接时将给出警告信息: Warning no stack segment但这不代表源程序有错,仅仅是警告而已 c 如果源程序中不设置堆栈段(在链接时,会给出错误 信息), DOS将自动给程序分配最少128 字节的堆栈 区,故源程序中,如果没有大量数据压栈的话,可以不 设置堆栈段,从而简化程序。 . 486 DATA SEGMENT USE16 N1 DB x x N2 DB x x SUM DB ? DATA ENDS STACK_ SEGMENT STACK ‘STACK’ USE16 DB 128 DUP (?) STACK _ ENDS CODE SEGMENT USE16 ASSUME CS:CODE, DS:DATA ,SS:STACK_ BEG: MOV AX, DATA MOV DS, AX MOV AX,STACK_ MOV SS, AX MOV SP, 128 MOV AL,N1 ADD AL,N2 MOV SUM, AL MOV AH, 4CH INT 21H CODE ENDS END BEG2 . COM文件的编程格式 (1) 汇编语言规定:  COM文件的源程序只能有一个段: 代码段, 不允许 有堆栈段; 在代码段偏移地址=100H处, 必须是程序的启动指令;  程序中使用的数据可以放在代码段的开始或结尾 . . 486 . 486CODE SEGMENT USE16 CODE SEGMENT USE16 。省略部分。伪指令说明即可。 3 另一种编程方法—— 采用宏指令共享技术 书中的例(P165)将DISP宏指令单独组织成一个文件,文件名为“DISPLAY.MAC”,该文件和主模块文件以及两个子模块文件都存放在同一个目录下,因此,INCLUDE伪指令可以不必写出该文件的盘符和路径。解法3 :共享的宏文件DISPLAY.MACDISP MACRO YYXX,VAR MOV AH, 2 MOV BH, 0 MOV DX, YYXX INT 10H MOV AH, 9 MOV DX, OFFSET VAR INT 21H ENDM;------------------------------------------------ 解法3 主模块 . 486 PUBLIC BEG,MESG1,MESG2,ENDMESG EXTRN BEG1:NEAR,BEG2:NEAR INCLUDE DISPLAY.MACDATA SEGMENT USE16N EQU 28 DUP(' ')L1 DB N,' MENU ',0DH,0AH DB N,' ',0DH,0AH DB N,' 1. BeiJing ',0DH,0AH DB N,' 2. NanJing ',0DH,0AH DB N,' 3. Retrun DOS ',0DH,0AH DB N,' ',0DH,0AHL7 DB N,' Chioce(1,2,3): $ ’MESG1 DB 'Welcome To BeiJing ! $ ’MESG2 DB 'Welcome To NanJing ! $ ’ ENDMESG DB 'please strike any key $ 'DATA ENDSCODE SEGMENT PUBLIC USE16 ASSUME CS:CODE,DS:DATABEG: MOV AX, DATA MOV DS, AX MOV AX, 2 INT 10H DISP 0500H, L1AGA: DISP 0B00H, L7 MOV AH, 1 INT 21H CMP AL, '3' JE EXIT CMP AL, '1' JE BEG1 CMP AL, '2' JE BEG2 JMP AGAEXIT: MOV AH, 4CH INT 21HCODE ENDS END BEG解法3子模块1 .486 PUBLIC BEG1 EXTRN MESG1:BYTE EXTRN NEXT:NEAR INCLUDE DISPLAY.MACCODE SEGMENT PUBLIC USE16 ASSUME CS:CODEBEG1: MOV AX, 2 INT 10H DISP 0C1EH, MESG1 JMP NEXTCODE ENDS END解法3子模块2 .486 PUBLIC BEG2, NEXT EXTRN MESG2:BYTE EXTRN ENDMESG:BYTE EXTRN BEG:NEAR INCLUDE DISPLAY.MACCODE SEGMENT PUBLIC USE16 ASSUME CS:CODEBEG2: MOV AX, 2 INT 10H DISP 0C1EH, MESG2NEXT: DISP 171DH, ENDMESG MOV AH, 1 INT 21H JMP BEGCODE ENDS END5.12.4 模块化程序的可执行文件生成方法 模块化程序可执行文件的生成步骤如下: ①分别对各个模块进行编辑和汇编生成各自的目标文件(共享的宏文件只编辑不汇编),假设解法3的目标文件为: 主模块.OBJ,子模块1.OBJ,子模块2.OBJ。 ②然后用链接程序进行链接。例如: TLINK 主模块+子模块1+子模块2 生成的可执行文件与第一个目标文件同名,本例的可执行文件为主模块.EXE。 关 键 词: 接口 大学 微型计算机 原理 邮电 技术 01 南京

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

本文标题:南京邮电大学微型计算机原理与接口技术5-01章.ppt

链接地址: https://www.wenku365.com/p-48074287.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值