第4章3汇编语言设计结构(免费阅读).pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《微机原理与应用》赵春华 微机原理及应用 第四章 汇编语言程序设计 (2) 本章主要内容 基本语法 程序结构设计 2. 顺序+循环结构举例 DATA SEGMENT BUF1 DB HELLO,$ X=$-BUF1 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA STA:MOV DX,DATA MOV DS,DX MOV DX,OFFSET BUF1 MOV AH,09 INT 21H ;显示HELLO MOV AH,02 MOV CX,X MOV SI,OFFSET BUF1 LOP: MOV DL,[SI] ;一个一个显示HELLO INT 21H INC SI LOOP LOP MOV AH,4CH INT 21H CODE ENDS END STA 3. 分支程序设计举例 game: mov dx, offset msg1 mov ah, 9 int 21h mov ah, 1 int 21h cmp al, 0 jb stop cmp al, 9 ja stop cmp al, 5 jb below ja above mov dx, offset equal_5 jmp print below: mov dx, offset below_5 jmp print above: mov dx, offset above_5 print: mov ah, 9 int 21h jmp game stop: ret ; stop * * 基本程序结构: 顺序结构 循环结构 分支结构 子程序结构 复合结构:多种程序结构的组合 …… 基本程序结构: 顺序结构 无分支、无循环、无转移程序。 流程图的特点,表现为只有起始、终止框、说明处理框,而无判断框。 1.顺序结构程序 例1:用字节加法,对两个16位数做加法运算。这两个数从地址3000H:0050H开始连续存放。 程序清单如下: MOV AX,3000H MOV DS,AX MOV SI,0050H ;被加数指针 MOV DI,0052H ;加数指针 MOV BX,0054H ;和的指针 MOV AL,[SI] ;取被加数低8位 ADD AL,[DI] ;低位相加 MOV AH,[SI+1];取被加数高8位 ADC AH,[DI+1];高位相加 MOV [BX],AX ;保存运算结果 INT 20H ;结束 3000:0050 DB 34H 3000:0051 DB 12H 3000:0052 DB 78H 3000:0053 DB 56H 终 止 起 始 DS=3000H SI=50H,DI=52H,BX=54H AL=被加数低8位 AL=低8位相加 AH=被加数高8位 AH=高8位相加 保存运算结果 DEBUG 演示 例2:编写计算f=(V-(X*Y+Z-500))/X的程序。 X、Y、Z、V均为有符号16 位二进制数。 DATA SEGMENT X DW 0100H Y DW 01ABH Z DW -2100H V DW 6200H NUM DW ?, ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,X IMUL Y ;DX:AX=X*Y ADD AX,Z ADC DX,0 ;DX:AX=X*Y+Z SUB AX,500H SBB DX,0 ;DX:AX=( ) ;此处注意进位和借位的处理方法 MOV BX,AX MOV CX,DX ;保存中间结果 MOV AX,V CWD ;DX:AX=V SUB AX,BX SBB DX,CX ;DX:AX=

文档评论(0)

zilaiye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档