付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第六节 汇编语言程序设计一、概述 1. 编写汇编语言程序步骤 2. 判断程序质量的标准 3. 几种程序结构二、汇编语言程序设计举例 例1 将寄存器BX中的内容以十六进制形式显示出来。 例2 将键盘输入的十进制数据串转换成其相应大小的数值 存放在BX寄存器中。2一、概述1. 编写汇编语言程序步骤2. 判断程序质量的标准3. 几种程序结构3一. 编写汇编语言程序步骤 分析实际问题,抽象描述问题的模型 确定解决模型的算法 按算法画出程序流程图 按流程图编写程序 上机调试, 运行程序42. 判断程序质量的标准 程序的正确性 程序的可读性 程序的执行时间 程序所占内存大小53几种程序结构 顺序结构 分
2、支结构 循环结构 子程结构6顺序结构7两个分支YN 、 CMP AL, BL JG great JMP exitgreat: exit: 、 、 ALBL处理ALBL处理分支结构8三个分支 、 CMP AL, 0 JG great JL less JMP exitless: JMP exitgreat: exit: 、AL=0处理AL0处理ALLIST_REG ;在DOS下执行程序0000 0000 00FF 0BDF 0000 0912 0000 0000 0BDF 0BDF 0BEF 0BEF 0000 3202D: DEBUG LIST_REG.EXE ;利用DEBUG检测结果-R ;显
3、示当前寄存器内容AX=0000 BX=0000 CX=007B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=128E ES=128E SS=129E CS=129E IP=0000 NV UP EI PL NZ NA PO NC129E:0000 53 PUSH BX-G ;执行程序0000 0000 007B 0000 0000 0000 0000 0000 128E 128E 129E 129E 0000 7202Program terminated normally-运行的结果与用R命令显示的结果相同, 程序运行结果正确25例2 将键盘输入的十进制
4、数据串转换成相应大小的十六进 制数值存放在BX寄存器中。分析: 从键盘输入1234 ( 表示1234 ) 用0AH功能输入, 则缓冲区存放的内容为:06h04h31h32h33h34h0Dhnum问题:要转换成1234 即 04D2h存放在BX中, 怎么实现? 清ASCII码的高4位可得各数位大小值。01h02h03h04h04D2h?26算法一: 数值大小 = 各位值权值之和 1234D = 千位1000 + 百位100 + 十位10 + 个位 = 11000 + 2100 + 310 + 4 = 0000 0100 1101 0010B = 04D2H01h02h03h04h04D2h?2
5、7算法二: 数值大小 =部分和10 +下一位数值 1234D = ( ( ( 010 + 1 ) 10 + 2 ) 10 + 3 ) 10 + 4 = 0000 0100 1101 0010B = 04D2H 部分和从0开始,循环次数等于输入的位数01h02h03h04h04D2h?28 data SEGMENT string DB Input:,$ num DB 6, ?, 6 DUP(?) data ENDS CODE SEGMENT ASSUME CS:code, DS:data start: MOV AX, data MOV DS, AX CALL input CALL change
6、CALL list_bx MOV AH, 4CH INT 21H 开始初始化DS的值CALL input显示输入提示,等待从键盘输入十进制数据串CALL change将数据串转化为相应的数值存放在BX中返回DOS主程序流程图CALL list_bx将BX内容以16 进制显示出来 29input子程序流程图调用09功能显示输入提示调用0A 功能等待从键盘输入数据RET返回input PROC LEA DX , string MOV AH , 09H INT 21H LEA DX , num MOV AH , 0AH INT 21H RETinput ENDP0604313233340D00num
7、000030change子程序流程图(BX) 输入字符的数值大小SI 数据串偏址CX 数据串长度AX 部分和初值0DI 乘数10YNRET返回AX部分和乘10(AX) (AX)+(BX)形成新的部分和修改SI指针,指向下一位输入BX转换结果AXCX CX-1 CX=0? change PROC LEA SI, num+2 MOV CL, num+1 MOV CH, 0 MOV AX, 0 MOV DI, 10 next: MUL DI MOV BH, 0 MOV BL, SI AND BL, 0FH ADD AX, BX INC SI LOOP next zero: MOV BX, AX RE
8、T change ENDP 0604313233340D00num00001234D = ( ( ( 010 + 1 ) 10 + 2 ) 10 + 3 ) 10 + 431显示字符个数CH=4循环移位次数CL=4BX循环左移4位,将要显示的值移至低4位,保存在DL中清DL 的高4位,只保留要显示位的值DL DL+30H完成数值09的ASCII码转换YNDLDL+07H完成数值AF的ASCII码转换用02功能显示DL中的字符YNRET返回DL 超出39H?CH CH-1转换结束?list_bx子程序流程图 list_bx PROC MOV CH, 4 MOV CL, 4 next: ROL B
9、X, CL MOV DL, BL AND DL, 0FH ADD DL, 30H CMP DL, 39H JLE print ADD DL, 07H print: MOV AH, 2H INT 21H DEC CH JNZ next RET ;子程返回 list_bx ENDP code ENDS END start32例2 程序存在的问题:1未处理输入非数字字符的情况2输入的十进制数范围为0655353当输入字符个数为0(直接回车)时,结果错误4未处理负数情况5结果的显示未换行 Input:1234 最后看到的是:0D42t:1234 33编写子程序的注意事项: 注意子程中PUSH、POP应
10、成对,否则易造成死机。 data SEGMENT string DB Hello,$ data ENDS code SEGMENT ASSUME CS:code, DS:data start: MOV AX, data MOV DS, AX CALL input MOV AH, 4CH INT 21H input PROC PUSH AX LEA DX, string MOV AH, 09H INT 21H RET input ENDP code ENDS END start执行call 前SS:SP (AX)执行call 后SS:SP (IP)执行push 后SS:SP 执行ret 后SS:SP (IP)34例 下面程序段,思考是否可以完成 AX CX, BXDXCODE SEGMENT ASSUME CS:code start: MOV AX,data MOV DS,AX PUSH AX PUSH BX CALL sub MOV AH, 4CH INT 21H sub PROC POP DX POP CX 、 、 RETsub ENDPcode ENDS END start如何用堆栈传送参数,参看教材,或相关参考书。push ax前SS:SP (BX)push ax后SS:SP (AX)push bx后SS:SP 执行 re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年浙江省部编版小学英语三年级上册第8单元听力练习题
- 运输二队员工不安全行汇编
- 全球气候变暖背景下黄大豆单产波动与投资风险重估
- 从流体动力学仿真看PB弯头适配器对超纯水系统良率的隐性影响
- 人工智能交互界面嵌入对桌面多用途座产品定义权的争夺
- ESG评级体系嵌入电镀拉手项目投资决策的量化影响路径
- AP抗氧化剂专利悬崖期后的市场格局重塑与投资窗口
- 2026年湖南铁道职业技术学院高职单招笔试英语试题库含答案解析3套试卷
- 2026年湖南有色金属职业技术学院高职单招笔试化学试题库含答案解析2套试卷
- 2026年湖南体育职业学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2026年水电工程的安全风险隐患分析
- 《洁净厂房操作规程》课件
- 2024-2025学年北京西城区六年级(上)期末 语文试卷(含答案)
- 《三七总皂苷对ApoE-小鼠动脉粥样硬化炎症反应的影响及其机制研究》
- 电影与社会文化影响研究
- 屋顶光伏发电项目EPC总承包工程招标文件
- 渤海大学《大学物理》2018-2019期末试卷(C卷)
- 舞台用升降机械系统
- 房产测量作业指导书
- 学前儿童发展心理学PPT中职完整全套教学课件
- 新汉语水平考试HSK5级写作解题攻略
评论
0/150
提交评论