网站大量收购独家精品文档,联系QQ:2885784924

第五章 程序设计基本方法.ppt

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

例 5.20 程序 MOV F,CL MOV AH,AL MOV BH,BL MOV CL,4 SHR AH,CL AND AL,0FH SHR BH,CL AND BL,0FH OR AX,3030H OR BX,3030H XCHG AH,AL XCHG BH,BL 例 5.20 程序 MOV WORD PTR F+1,AX MOV WORD PTR F+3,BX LEA DX,F ;将F的内容显示输出 MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START 5.5.2 代码转换程序设计 例5.21 编写程序,将BIN字变量中的16位有符号二进制数转换成十进制数,然后将十进制数的ASCII码存人存储器的BUF字节缓冲区中,并显示输出转换的结果。 其解题分为四步: 一是处理16位有符号二进制数的符号位; 二是完成二进制转换成十进制的操作; 三是ASCII码的转换;四是显示输出转换的结果。 四步中最主要的是完成二进制转换成十进制的操作。 其转换的方法有多种,下面介绍一种除十取余的方法。此转换方法是将二进制数每次除以10。 第一次将二进制数除以10得到的余数是个位数; 第二次将所得的商除以10得到的余数是十位数; 第三次再将所得的商除以10得到的余数是百位数; 第四次再将所得的商除以10得到的余数是千位数; 第五次再将所得的商除以10得到的余数是万位数。 例5.21 每次将所得的余数依次保存在堆栈中。ASCII码的转换操作是将堆栈中的内容依次弹出,将每个数加30H后送BUF字节缓冲区。最后用DOS功能调用将BUF字节缓冲区的内容显示输出。编写的程序清单如下: STACK SEGMENT STACK DW 100 DUP(0) STACK ENDS DATA SEGMENT BIN DW 7462 BUF DB 6 DUP(0),0DH,0AH,‘$’ TEN DW 10 DATA ENDS CODE SEGMENT 例5.21 ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,BIN ;符号位处理 OR AX,AX JNS PLUS NEG AX MOV BUF,‘-’ JMP NEXT PLUS: MOV BUF,‘+’ NEXT: MOV CX,5 L1: MOV DX,0 DIV TEN PUSH DX LOOP L1 MOV CX,5 ;ASCII码的转换 例5.21 LEA BX,BUF+1 L2: POP AX ADD AL,30H MOV [BX],AL INC BX LOOP L2 LEA DX,BUF ;显示字符串 MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START 例5.22 例5.22 编写将STR字符串中存放的十进制ASCII码数字(-32768~32767)转换为二进制数字,并把转换的结果送BUF缓冲区的程序。 该程序的功能是要将有符号的十进制数(连同符号位)转换成二进制数。有符号十进制数的书写形式有如下三种: d1 d2 …dn +d1 d2 …dn -d1 d2 …dn 其中di (i =1,2, …,n)为0~9中的一位十进制数字。 将有符号十进制数转换二进制数须分三步完成。第一步是对符号的处理;第二步是对数字的转换;第三步是对错误信息的处理。对数字的转换可以把十进制数字d1 d2 …dn写成如下形式: d1 d2 …dn=(…(0)×10+ d1)×10+ d2+…)×10+ dn 由于di和10在计算机中都是以二进制形式表示和运算的,所以上式在计算机中计算所得的值为二进制。如果d1 d2 …dn为正数,则计算所得的值就是要转换的二进制;如果d1 d2 …dn为负数,则计算所得的值须求补后才是转换的二进制。编写的程序清单如下: 例

文档评论(0)

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

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

1亿VIP精品文档

相关文档