版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 汇编语言程序设计(二) 格式# 伪指令# DOS/BIOS调用 (简单了解) 重点:数据结构表示 变量、指针 程序结构 程序流控制(条件、分支、循环) 程序设计方法 Assembly Language Programming(2)1 汇编语言源程序格式(例) STACK1 SEGMENT PARA STACK STACK DB 512 dup(?) ;定义堆栈段STACK1 512字节STACK1 ENDS DATA SEGMENT ;定义数据段DATA MESSAGE DB This A Sample Program, LFCR$ DB 0DH,0AH,$ AnyDATA DW 10
2、0,. DATA ENDS ;数据段DATA结束 CODE SEGMENT ;定义代码段CODE ASSUME CS:CODE,DS:DATA; 说明汇编程序活动段范围段名段说明保留字标号.2862汇编语言例程 (续1 )MAIN PROC FAR ;MS-DOS 模板语句START:PUSH DS XOR AX,AX PUSH AX ;保存返回指针 DS:0START1:MOV AX,DATA MOV DS,AX LEA BX,MESSAGELOOP1:CMP BYTE PTR BX,$ ; 24H JZ NEXT ;是结束符 CALL PRINT_A CHAR ;输出该字符 INC BX
3、JMP SHORT LOOP1 ; 继续3汇编语言例程 (续2 )NEXT: RET ;返回OSMAIN ENDPPRINT_A_CHAR PROC MOV AH,5 DOS功能调用5=打印机输出 MOV DL,BX DL中为打印输出的字符; INT 21H 打印输出一字符 RETPRINT_A_CHAR ENDP .CODE ENDS END START;汇编结束,运行从START开始子程序 NEAR4伪操作命令-合理设计数据结构BV1 DB 30, 20H, 111110BBV2 DB 3 DUP(?) BV3 DB This is a exampleBV4 DB .WV1 DW BV1,
4、BV2,BV3 ;近指针变量WV2 DD BV4,. ;远指针变量DWV1 DD WV1,WV2,. DP1 DD PRC1,PRC2 ;PRC1,PRC2为过程名BV2L EQU BV4-BV3 MOV BX,WV1+4 MOV AL, BX ; AL=? JMP FAR PTR DP1+4; ;执行?5伪操作命令例1分析MYDATA SEGMENT AT 8A00HBV1 DB 30,20H,111110BBV2 DB 3 DUP(20H) DB ?,?BV3 DB This is a example$ BV4 DB It is a Problem$ WV1 DW BV1,BV2,BV3
5、WV2 DW BV4DWV1 DD WV1,WV2DW2 DD .MYDATA ENDSBV2的地址=?DW2的地址=?8A00:0003H8A00:003AH;- 0000;- 0003H;- 0006H;- 0008H;- 001AH;- 002AH;- 0030H;- 0032H;- 003AH6伪操作命令例2分析CODE SEGMENT PRC1 PROC FAR ;8B00:0000:PRC1 ENDPPRC2 PROC FAR ;8B00:2C20:PRC2 ENDPDP1 DD PRC1,PRC2 ;8B00:3000 ASSUME CS:CODE, DS:DATAJMP FAR
6、 PTR DP1+4; 00,00,00,8B,20,2C,00,8B8B00:2C20=JMP FAR PTR CS:3004H;DP1 内容=?目标地址=?7汇编语言程序设计方法回顾 步骤:分析、建模-算法 -单任务同其它语言:判断框 条件?终止框过程/执行框起始/准备框 流程图各框的表示法编程-调试(DEBUG版)-运行/发行(Release)版 设计方法:自顶向下,逐步细化,层层分解具体小任务; 模块化程序设计:相对独立、功能单一、I/O关系明确8汇编语言程序设计结构质量评估 内存容量(效率)、速度、源代码(复杂性)、可维护性、可靠性基本结构 (单任务):顺序、分支、循环语句1语句2语
7、句3语句nMOV AX,100MOV BX,200MOV CX,8000ADD BX, CXCMP BX,1000JZ NEXT9汇编语言程序设计分支结构基本结构 (单任务):顺序、分支、循环程序段条件?N程序段1程序段2条件?NY CMP AL,100 JZ NEXT MOV CX,2000NEXT: MOV CX,3000 CMP AL,100 JZ NEXT1 JMP NEXT2NEXT1: MOV CX,3000NEXT2:IF C IF C ELSE 10汇编语言程序设计循环结构基本结构 (单任务):顺序、分支、循环N程序段1结束循环?Y计数循环条件循环循环体结束?Nfor(i=0;
8、i100;i+)do . while(. )while (.) do . 11汇编语言程序设计结构过程(子程序)反复使用程序段,简化设计、减少程序空间开销、易读、易维护调试。-函数, 方法 ENTRY/ EXIT/USED指明传递和保护(变量/寄存器)问题 保护现场/恢复现场(主程序(调用者)/子程序均可);主程序(调用者)完成 PUSH AX PUSH BX CALL SUBRT;(不保护) POP BX POP AX .SUBRT PROC子程序完成 SUNRT: PUSH AX PUSH BX . POP BX POP AX RET 12汇编语言程序设计处理与判别比较 CMP AL,A;
9、41H,65 JZ/JNZ ; CMP CX,BUFSI JC(JNC) JG/JL 分支结构缓冲区/指针 初始化 XOR AX,AX; MOV BUF,AX; MOV BUFPT,0 ;OFFSET Buf_head INC BUFPT 修正计数(指针) CMP BUFPT, BUFEND ; full? OFFSET Buf_tail13汇编语言程序设计处理与判别2判零 AND AL,AL; OR AX,AX, TEST AL,AL ; CMP AL,0 JZ置位 OR AL, 00001000B; OR AL, 8 ;B3=1复位 AND AL,01110111B; AND AL,77H
10、; B7,B3=0判位0/1:TEST AL, 00001000B; JZ(0)/NZ(1)14顺序程序举例计算f(x)=5x3+4x2-3x+12=(5x+4)*x-3)*x+12 计算f(6)FXCALC PROC; ENTRY X=x,EXIT=f(x);Used:AX, DX MOV AX,5 MUL X ADD AX,4; MUL X;() SUB AX,3 ;() MUL X ADD AX,12 MOV RESULT,AX RETFXCALC ENDP ;:XDW 6; MOV X,6 存储变量传递参数调用:MOV X,6 ; CALL FXCALC15分支:比较测试结构跳转结构:
11、 根据X0 给Y赋值-1,0,1 MOV AL, XX MOV AH, 1 CMP AL, 0 JG EXIT;X0, AH=1 JZ ZERO MOV AH, -1;0 JMP EXITZERO: MOV AH, AL; 0EXIT: MOV YY,AH16分支:比较测试结构(最大值w) MOV BX, OFFSET CMPDAT MOV CX,COUNT MOV AX,BX INC BX INC BXCHECK0: CMP AX,BX JNC CHECK1 MOV AX,BXCHECK1:INC BX INC BX LOOP CHECK0EXIT: 17循环结构条件控制法先判断后工作while .do; MOV CX,0; CHECK:CMP CX,100; JNC FINISH; INC CX, JMP CHECK;FINISH: 先工作后判断条件 do ( )while MOV CX,0; CHECK:. INC CX; CMP CX,100, JC CHECK;FINISH:18循环结构(续2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东广州市黄埔区林业工作站招聘政府初级雇员2人备考题库附答案详解(典型题)
- 2026四川宜宾市中医医院第一次自主招聘工作人员3人备考题库附参考答案详解(a卷)
- 2026安徽芜湖无为市人才发展有限责任公司公司代无为乡投文化旅游开发有限公司招聘6人备考题库及答案详解(必刷)
- 2026一重集团国际有限责任公司面向集团内部及社会招聘业务人员备考题库含答案详解(基础题)
- 2026吉林省吉高路业发展有限公司劳务派遣项目招聘1人备考题库及答案详解(全优)
- 2026云南昭通市市场监督管理局招聘城镇公益性岗位工作人员2人的备考题库含答案详解(预热题)
- 2026年桃花镇延乔路幼儿园招聘厨房帮厨若干名备考题库带答案详解(轻巧夺冠)
- 2026安徽芜湖高新区(弋江区)国有企业人员招聘12人备考题库带答案详解(培优a卷)
- 2026一季度重庆市属事业单位公开遴选28人备考题库附答案详解(能力提升)
- 2026广东佛山市顺德区东马宁小学招聘临聘教师1人备考题库及答案详解(易错题)
- 日本风格家居空间设计解析
- 商铺应急预案范本(3篇)
- 浅析国有参股企业股权管理优化方案构建与实施
- 住院患者非计划性拔管循证预防与安全管理体系构建
- 后勤工作会议讲话稿
- DB11∕T 1831-2021 装配式建筑评价标准
- 2024-2025学年度陕西能源职业技术学院单招《职业适应性测试》考试历年机考真题集(易错题)附答案详解
- 2025-2026学年度武汉市部分学校高三年级九月调研考试 数学试卷(含答案解析)
- 2025年护士长竞聘上岗理论测试题(附答案)
- 小区楼道物业清理方案(3篇)
- 保安机具管理办法
评论
0/150
提交评论