微型计算机原理与应用第4章汇编语言程序设计基本的 方法.ppt

微型计算机原理与应用第4章汇编语言程序设计基本的 方法.ppt

  1. 1、本文档共573页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微型计算机原理与应用第4章汇编语言程序设计基本的 方法.ppt

本例的程序如下:[HT5”SS] ****************************** * 子程序名[CM)]: STEV*; * 子程序功能[CM)]: 对指定缓冲区中的一组ASCII码加偶校验*; * 入口参数[CM)]: 缓冲区首地址送DS:DI*; * 出口参数[CM)]: 加上偶校验后的缓冲区内容*; * 用到的寄存器: 对所有的寄存器均无影响* ******************************  CODE SEGMENT; ASSUMECS:CODE, DS:DATA, SS:STACK; STEVPROCNEAR; PUSHDS; PUSHDI; PUSHCX; PUSHAX; MOVCL, [DI]; 取缓冲区长度送CL MOVCH, 0; INCDI; L1:MOVAL, [DI]; 缓冲区中取出一个字符 ORAL, 80H; 最高位置 1 JNPL2; 是奇数个 1 吗? MOV[DI], AL; 不是, 则(AL)送[DI] L2:INCDI; 是, 则不送 LOOPL1; POPAX; POPCX; POPDI; POPDS; RET; STEVENDP; ********** 主程序 ********** START:MOVAX, DATA; MOVDS, AX; MOVAX, STACK; MOVSS, AX; MOVSP, OFFSET TOP; LEADI, BUFOUT; BUFOUT首址送DI CALLSTEV; MOVAH, 4CH; INT21H; CODEENDS=; STACKSEGMENT STACK; DW 256 DUP(?); TOPLABEL WORD; STACKENDS; DATASEGMENT; BUFOUTDB 30H DUP(?); DATAENDS; ENDSTART 例 4.3.16 写一子程序, 将 16 位二进制数转换成十进制数并送显示器显示。 本例的程序如下: ********************************* * 子程序名[CM)]: BINTOD*; * 子程序功能[CM)]: 将 16 位二进制数转换成十进制 数并送显示器显示 *; * 入口参数[CM)]: 16 位二进制数送DX*; * 出口参数[CM)]: 转换后的十进制数送显示器输出 *; * 用到的寄存器: 对所有的寄存器均无影响* ********************************* CODE SEGMENT; ASSUMECS:CODE; BUFOUTDB 5 DUP(?); BINTODPROCFAR; PUSHDX; PUSHCX; PUSHBX; PUSHAX; PUSHSI; MOVSI, LENGTH BUFOUT MOVCX, SI; L1:DECSI ; SI指向BUFOUT的尾部 MOVAX, DX; MOVDX, 0; MOVBX, 10; DIVBX; (DX:AX)/(BX); XCHGAX, DX; (AX)←→(DX); ADDAL 30H; MOVBUFOUT[SI], AL; 一位十进制数ASCII码→[SI]; CMPDX, 0; DX=0?; JNZL1; 否, 则继续 CALLOUT1; 是, 则显示输出 POPSI; POPAX; POPBX; POPCX; POPDX; RET; BINTODENDP;; OUT1: PROCNEAR; PUSHDX; PUSHCX; PUSHAX; OUT2:MOVDL, BUFOUT[SI]; BUFOUT中的内容送显示器 MOVAH, 02; INT21H; INCSI; CMPSI, CX; JBOUT2; POPAX; POPCX; POPDX; RET; OUT1ENDP; CODEENDS; ********** 主程序 ********** STACK:SEGMENT STACK; DW 256 DUP(?); TOPLABEL WORD; STACKENDS; DATASEGMENT; BINDDW ?; DATAENDS; CODEMSEGMENT; ASSUME CS:CODEM, DS:DATA, SS:STACK; START:MOVAX, DATA; MOVDS, AX; MOVAX, STACK; MOVSS, AX; LEASP, TOP; M

您可能关注的文档

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档