汇编语言之应用程序设计
第4章汇编语言程序设计伪指令的功能和应用程序设计的步骤和基本方法汇编的概念顺序程序分支程序循环程序子

AQ BIT P0.0 DEF BIT 00H
把P0.0的位地址赋给字符AQ,把位地址00H赋 给字符DEF。在其后的编程中,AQ可作P0.0使用, DEF可作位地址30H使用。
7.定义空间伪指令:
格式:〔标号:〕DS 表达式 功能:从标号指定的地址单元开始,保留若干个存储
常用的伪指令有以下几种:
⒈ 起始伪指令 ORG(Origin)
格式:ORG 16位地址 功能:规定ORG下面第一条指令的起始地址为
ORG指定的16位地址。
ORG 0100H START:MOV A,#05H
ADD A,#08H MOV 20H,A
①MOV A,#05H指令的第一个字节地址为0100H, ②标号START代表的地址为0100H。
⒉ 结束伪指令 END
格式:END 功能:汇编语言源程序的结束标志。
在END后面的指令,不被汇编。
⒊ 等值伪指令 EQU(Equate)
格式:字符名称 EQU 数据或符号
例如: PW EQU 2000H MOV DPTR, #PW ;(DPTR)=2000H
这里将PW等值为数值2000H,在指令中PW就可 以代替2000H来使用。
第二节 汇编语言程序设计举例
一. 顺序程序
顺序程序是指按顺序依次执行的程序, 顺序程
序结构虽然比较简单,但它是构成复杂程序的基础。
• 【例4-2】编写16位二进制数求补程序。 • 设16位二进制数存放在R1、R0中,求补以后的
结果则存放于R3、R2中。
CONT:
ORG 0200H
MOV A,R0 CPL A ADD A,#1 MOV R2,A MOV A,R1 CPL A ADDC A,#80H MOV R3,A RET
汇编语言程序设计

汇编语言程序设计汇编语言是一种低级别的编程语言,它直接操作计算机的硬件系统。
汇编语言程序设计是编写汇编语言程序的过程。
在给定的硬件平台上,汇编语言程序可以更有效地利用计算机资源,提高程序的执行速度。
汇编语言程序设计需要遵循一定的规则和指令集。
指令集是计算机硬件平台提供的一系列可用指令,通过这些指令可以对计算机的寄存器、内存、输入输出设备进行操作。
编写汇编语言程序的过程需要熟悉指令集的用法和编程规则。
汇编语言程序设计的主要任务包括数据传输、算术和逻辑运算、控制流程和存储器管理等。
数据传输是将数据从一个位置复制到另一个位置的过程,可以通过寄存器或内存进行操作。
算术和逻辑运算是对数据进行加减乘除等运算,并且进行逻辑判断和比较。
控制流程是根据条件执行不同的指令序列,包括条件分支和循环等。
存储器管理是对内存进行读写操作,包括内存的分配和释放。
编写汇编语言程序需要考虑程序的效率和可读性。
程序的效率是指程序在给定硬件平台上的执行速度和资源利用率。
程序的可读性是指程序的结构和注释是否清晰,易于理解和维护。
除了编写汇编语言程序之外,还需要进行程序的调试和优化。
调试是指在程序运行时发现和修复错误的过程,可以通过单步执行和打印调试信息等方法进行调试。
优化是对程序进行性能优化的过程,可以通过改进算法和数据结构,减少不必要的计算和内存访问等方法进行优化。
总之,汇编语言程序设计是一种底层编程技术,可以更直接地操作计算机硬件。
编写汇编语言程序需要熟悉指令集和编程规则,并考虑程序的效率和可读性。
调试和优化是编写汇编语言程序的重要环节。
汇编语言程序设计对于深入理解计算机系统和进行高性能程序开发都具有重要意义。
汇编语言程序设计教程

汇编语言程序设计教程汇编语言是一种基于机器指令的低级语言,常用于嵌入式系统和底层编程。
学习汇编语言可以帮助理解计算机底层工作原理,并提高编程效率。
本篇文章将介绍汇编语言程序设计的基础知识和主要步骤。
一、汇编语言的特点汇编语言是一种直接操作计算机硬件的语言,其特点如下:1.与机器语言一一对应:每一条汇编指令对应一条机器指令,更接近计算机底层的执行方式。
2.语法简单:汇编语言的语法相对简单,只包含一些基本指令和寻址方式。
3.高度灵活:汇编语言可以直接访问计算机硬件和寄存器,灵活控制程序的执行流程。
4.高效性能:由于直接操作底层硬件,汇编语言编写的程序通常具有较高的执行效率。
二、汇编语言的基本组成1.汇编指令:汇编指令是汇编语言最基本的语句单元,用于实现具体的操作和控制流程。
2.伪指令:伪指令是用来对程序进行宏汇编定义和控制汇编程序的运行方式的命令。
3.伪操作码:伪操作码用来定义数据和存储空间,如定义变量和常量。
4.标号和标识符:标号用于标记程序中的位置,标识符用于定义变量和常量的名称。
5.注释:注释用于给程序增加解释说明,提高程序的可读性。
三、汇编语言程序设计的步骤1.确定程序的目标和功能:明确程序的需求和目标,确定所需的处理过程和数据结构。
2.设计算法:使用伪代码或流程图的形式描述程序的算法逻辑,包括输入、处理和输出过程。
3.选择合适的汇编指令和寻址方式:根据程序需求,选择适当的指令和寻址方式,确保程序能够正确实现算法逻辑。
4.编写程序源代码:根据算法和选定的指令,编写程序源代码,包括声明、定义变量、初始化和实现算法的具体指令。
5.进行编译和调试:使用汇编编译器将源代码转换为机器码,然后进行程序的调试和测试,确保程序能够正常运行。
6.优化性能和可读性:根据程序的需求和实际运行结果,进行性能优化和代码可读性的提高,提高程序的执行效率和可维护性。
四、汇编语言程序设计的示例下面是一个简单的汇编语言程序示例,实现了计算两个数之和的功能:```section .datanumber1 db 10 ;定义变量number1,并初始化为10number2 db 20 ;定义变量number2,并初始化为20sum db ? ;定义变量sum,用于存储两个数之和section .textglobal _start_start:;将number1和number2的值相加,并保存到sum中mov al, [number1]add al, [number2]mov [sum], al;结束程序mov eax, 1 ;1代表退出程序int 0x80 ;调用系统中断```以上示例通过使用mov和add指令来实现变量的赋值和求和操作。
四章汇编语言程序设计ppt课件

ENDS,ASSUME,END ,…. 保留字:SEGMENT ENDS OFFSET SIZE DB
DW DD MOV PUSH ADD SUB MUL DIV INC DEC LOOP PROC ENDP CALL RET END
类别名
CODE、DATA、STACK(同名同类别段连续存放)
第4章 汇编语言程序设计
伪操作命令之三:段定义伪指令
段寄存器说明伪指令ASSUME
ASSUME 段寄存器名:段名[段寄存器名:段名[…..]]
例:
CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
MAIN:
……
CODE ENDS ENDS MAIN
;指定第一条要执行的指令标号
注:1、该伪指令用于明确用SEGMENT定义的段的类型, 使编译程序能生成目标代码程序。
2、在源程序中,该伪操作放在可执行程序的前面。 3、该指令没有给段寄存器赋予实际的初值。这项工作要通
过写指令来完成,其中代码段不需要赋值。
+、-、*、/、MOD、SHL、SHR 都可应用于数字运算。 +、- 可以用于表示存储器操作数的地址,或两个存储器
单元(同一段内)的地址偏移量之差。 例:SUM - 2
CYCLE - GO
第4章 汇编语言程序设计
运算符之二:逻辑运算符
AND、OR、XOR、NOT 按位的逻辑运算 例:IN AL,PORT_VAL
DATA2 DB 0C1H,36H,9EH,0D5H,20H;加数
DATA ENDS;数据段结束
CODE SEGMENT;定义代码段
第四章-汇编语言程序的设计

第四章汇编语言程序设计本章的汇编语言程序设计的主要容有:汇编语言程序设计概述、汇编语言程序的结构形式、汇编语言的伪指令。
(一个单片机应用系统和其它计算机系统一样,在完成一项具体工作的时候,它要按照一定的次序,去执行操作,这些操作实际上就是由设计人员,以单片机能够接受的指令编制的程序,那么无论计算机也好,单片机也好,实际上编制程序的过程,就是用计算机来反映设计者的编程思想,那么这一章中,我们将向大家介绍怎样使用单片机指令系统来编制一些应用程序。
在介绍之前,我们还是来学习汇编语言的一些基础知识)4.1 汇编语言程序设计概述1、计算机的汇编语言以助记符表示的指令,每一条指令就是汇编语言的一条语句。
(汇编语言程序设计实际上就是使用汇编指令来编写计算机程序。
汇编语言的语句有严格的格式要求)2、汇编语言的语句格式MCS-51汇编语言的语句格式表示如下:[<标号>]: <操作码> [<操作数>]; [<注释>]标号:指令的符号地址,有了标号,程序中的其它语句才能访问该语句。
①标号是由1~8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。
②不能使用汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。
(同一个标号在程序中只能定义一次,不能重复定义;一条语句可以有标号,也可以没有标号,所以是否有标号,取决于程序中是否需要访问该语句。
)操作码:规定语句执行的操作容,操作码是以指令助记符表示的,是汇编指令格式中唯一不能空缺的部分。
操作数:给指令的操作提供数据或地址。
注释:是对语句或程序段的解释说明。
(在单片机中,这四个部分怎么加以区分呢?使用分界符)分界符(分隔符):用于把语句格式中的各部分隔开,以便于编译程序区分不同的指令段。
冒号(:)用于标号之后空格()用于操作码和操作数之间逗号(,)用于操作数之间,分割两个以上的操作数分号(;)用于注释之前。
高级汇编语言程序设计及应用课程设计

高级汇编语言程序设计及应用课程设计一、课程介绍本课程主要介绍高级汇编语言程序设计及应用。
通过学习,学生将了解汇编语言的基础知识,掌握高级汇编语言的基本语法和应用技巧,并能够运用所学知识编写高质量的汇编程序。
二、课程目标1.了解汇编语言的基本概念和体系结构。
2.掌握汇编语言的基本语法和编程技巧。
3.理解高级汇编语言的特点和应用场景。
4.学会运用高级汇编语言编写复杂的程序,并能够进行程序优化。
三、课程内容1. 汇编语言的概述和体系结构•计算机的执行模型•汇编语言的发展历程和应用范围•汇编语言的语法和程序结构2. 汇编语言的基本语法和编程技巧•汇编语言的基本数据类型和内存地址•语言的指令系统和操作码•数据传输和算术运算指令的应用•条件跳转和循环结构的应用•子程序的定义和调用3. 高级汇编语言的特点和应用场景•高级汇编语言的变量和表达式•结构体和联合体的定义和使用•宏的定义和应用•汇编语言和C语言的混合编程4. 高级汇编语言的程序优化•数据对齐和缓存优化•代码重排和指令优化•循环展开和代码内联四、实验内容1.实验一:汇编语言的基本语法和编程技巧实验2.实验二:高级汇编语言的特点和应用场景实验3.实验三:高级汇编语言的程序优化实验五、实验要求1.实验环境:PC机+汇编语言开发环境2.实验过程:按照实验指导书的要求完成实验,并撰写实验报告3.实验报告:要求格式规范,内容详细,结论准确,并提交到所指定的邮箱地址六、考核方式1.课堂测验:占总成绩的30%2.实验报告:占总成绩的40%3.课程设计:占总成绩的30%七、参考文献1.《汇编语言程序设计》2.《汇编语言优化编程》3.《8086汇编语言》4.《高级汇编语言编程》。
课件汇编语言程序设计

汇编语言的应用领域
系统软件
汇编语言在系统软件领域的应用 非常广泛,如操作系统、设备驱
动程序等底层软件的编写。
游戏开发
在游戏开发中,汇编语言主要 用于实现游戏引擎和底层图形 渲染等关键技术。
嵌入式系统
在嵌入式系统中,由于硬件资源 有限,汇编语言常常被用于实现 系统内核和关键模块的优化。
安全领域
由于汇编语言的底层特性,它在 安全领域中也有着广泛的应用,
段的大小和起始地址可以 通过汇编指令进行定义和 修改。
ABCD
段是内存中连续的内存单 元的集合,通常用于存储 程序代码、数据等。
内存单元的访问通常通过 偏移量来实现,偏移量指 定了从段起始地址开始的 相对地址。
寻址模式
寻址模式是指确定如何访问内存单元或寄存器 中的数据的方式。
常见的寻址模式有直接寻址、间接寻址、基址 寻址、变址寻址等。
高效性
由于汇编语言与机器指令一一对应,因此其执行效率非常 高。
面向机器
汇编语言直接与计算机硬件打交道,因此其程序的可移植 性较差。
语言简洁
汇编语言的指令集较少,语法简单,易于学习和掌握。
汇编语言的历史和发展
01
早期的汇编语言
随着计算机的诞生和发展,人们开始使用汇编语言进行程序设计。早期
的汇编语言比较简单,主要用于编写操作系统和编译器等底层软件。
02
C语言可以通过调用汇编语言 编写的函数来实现与汇编语言 的交互。
03
C语言中的某些关键字和运算 符可以与汇编语言进行交互, 例如asm关键字和volatile关键 字。
Java语言与汇编语言的接口
01
Java虚拟机(JVM)可以解释和执行汇编语言编写 的代码。
汇编语言程序设计

汇编语言程序设计在计算机编程的世界中,汇编语言一直被认为是一种底层的编程语言,它直接操作计算机硬件。
通过编写汇编语言程序,程序员可以更直接地控制计算机的行为和性能,实现更高效的算法和程序。
什么是汇编语言汇编语言是一种直接映射到计算机机器语言的低级语言,它使用简洁的符号表示指令、寄存器和内存地址。
与高级语言相比,汇编语言更注重程序的底层细节和硬件操作,使得程序员可以更好地理解计算机的工作原理。
汇编语言的优势1.性能优越:汇编语言直接操作计算机硬件,可以实现高效的程序设计,往往比高级语言编写的程序速度更快。
2.对硬件的直接控制:汇编语言程序可以直接操纵寄存器、内存和其他硬件组件,为程序员提供更高的灵活性和控制力。
3.轻量级:由于汇编语言直接映射到机器语言,它的代码通常比高级语言更加紧凑,占用更少的内存空间。
汇编语言的基本结构汇编语言程序通常由若干条指令组成,每条指令表示一条特定的操作。
汇编程序的基本结构包括:•指令:汇编指令是汇编语言程序的基本单位,用于执行特定的操作,如加法、移动数据等。
•数据:汇编程序中会包含需要处理的数据,这些数据存储在内存中,程序通过加载和存储指令来访问这些数据。
•标签:标签是程序中的命名点,通常用于标识代码的跳转点或数据的地址,以便程序的分支和跳转。
汇编语言程序设计实例下面是一个简单的汇编语言程序,实现将两个数相加并输出结果的功能:section .datanumber1 dw 10number2 dw 20result dw 0section .textglobal _start_start:; 加载数据到寄存器mov ax, [number1]mov bx, [number2]; 计算结果add ax, bxmov [result], ax; 输出结果mov eax, 4mov ebx, 1mov ecx, resultmov edx, 2int 0x80; 退出程序mov eax, 1xor ebx, ebxint 0x80在这个示例中,程序首先定义了三个数据段变量number1、number2和result,然后在代码段中使用mov指令加载数据到寄存器、执行加法操作,并通过系统调用输出结果到标准输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章应用程序的设计在前面各章节中,我们侧重介绍了汇编语言程序设计中各组成部分的作用,本章的重点是对前面所学知识的综合运用。
希望通过各种不同类型的例子,使读者能够掌握用汇编语言编程的基本技巧。
10.1 字符串的处理程序字符或字符串是一类重要的非数值计算的处理对象。
许多编辑软件都具有字符串查找、替换、大小写的转换、单词的自动识别等功能,网络上的信息搜索也是现在一种常用的功能等,这些功能的实现无疑都要涉及到字符串的处理功能。
为了方便对字符串的处理,各种常用的编程环境也都给予了足够的支持。
如:C语言编程环境提供了大量处理字符串的标准函数,象strlen、strcmp和strcpy 等函数;C++、VC或VB等编程环境提供了字符串类String等。
这些函数或类大大方便了程序员的编程。
在计算机系统内,为了加快字符串的处理,在其指令系统中设置了多条处理字符串的指令,其详细内容请参阅第5.2.11节中的介绍。
下面我们将通过几个例子来学习汇编语言处理字符串的方法。
例10.1 编写一个求字符串长度的子程序Strlen,要求字符串的首地址为入口参数,且以ASCII码0为结束符,CX为出口参数,其存放该字符串的长度。
解:.MODEL SMALL, C.DATAbuff D B "This is a example.", 0.CODEStrlen P ROC USES AX BX, String:PTR BYTEMOV BX, StringXOR CX, CXMOV AL, [BX].WHILE AL!=0INC CXINC BXMOV AL, [BX].ENDWRETStrlen E NDP.STARTUPINVOKE Strlen, ADDR buff.EXIT 0END例10.2 编写一个把字符串中的所有小写字符转换成大写字符的子程序Strupr,要求字符串的首地址和结束符为其入口参数。
解:.MODEL SMALL, C.DATAbuff DB "This is a example.", 0.CODEStrupr P ROC USES AX BX, String:PTR BYTE, Tail:BYTEMOV BX, String.REPEATMOV AL, [BX].IF AL>='a' && AL<='z'SUB AL, 20HMOV [BX], AL.ENDIFINC BX.UNTIL A L==TailRETStrupr E NDP.STARTUPINVOKE Strupr, ADDR buff, 0.EXIT 0END例10.3 编写一个从字符串中拷贝子串的子程序Strncpy,它有四个参数str1、str2、idx和num,其具体功能为把字符串str2中从第idx个(从0开始记数)字符开始、num个字符传送给str1,字符串str1和str2都是以ASCII 码0为结束符。
解:.MODEL SMALL, C.DATAstr1 DB "12345ABCDEF", 0str2 DB 20 DUP('A').CODEStrlen PROC USES AX BX, String:PTR BYTE……;参见例10.1Strlen ENDPStrncpy P ROC USES AX CX DI SI DS ES, str1:FAR PTR BYTE, str2:FAR PTR BYTE, idx:WORD, num:WORDLES DI, str1LDS SI, str2 ;取两个字符串的首地址INVOKE S trlen, SI ;计算源字符串的长度,在CX中MOV AX, idx.IF AX >= CX ;若字符起点就超过源串的长度MOV BYTE PTR ES:[DI], 0 ;拷贝的字符串为“空”JMP over.ENDIFADD SI, AX ;定源串中字符的起点SIMOV CX, numCLD.REPEATLODSBSTOSB.UNTILCXZ AL==0.IF AL!=0 ;设置目标串的结束符MOV BYTE PTR[DI], 0.ENDIFover: RETStrncpy E NDP.STARTUPINVOKE S trncpy, ADDR str2, ADDR str1, 3, 5.EXIT 0END例10.4 编写一个把字符串中空格和TAB压缩掉的子程序Compress,字符串String是以ASCII码0为结束符。
解:.MODEL SMALL, C.DATASPACE EQU 20HTAB EQU 9HBuff DB "12 3 4 Ab cdef", 0.CODECompress P ROC USES AX BX SI DS, String:FAR PTR BYTELDS SI, String ;SI用于扫描字符串的指针MOV BX, SI ;BX用于存放结果的指针.REPEATMOV A L, [SI]INC S I.IF AL!=SPACE && AL!=TABMOV [BX], ALINC BX.ENDIF.UNTIL AL==0RETCompress E NDP.STARTUPINVOKE Compress, ADDR Buff.EXIT 0END从上面四个例子,我们不难看出处理字符串的一般方法,感兴趣的读者可自行编写实现字符串变小写、整体拷贝、逆转和查找等功能的子程序,甚至还可以建立起自己的字符串处理库文件。
10.2 数据的分类统计程序数据的分类和统计也是一类非数值计算,数据的分类统计方法在例 6.10中已介绍,下面通过一个例子介绍数据的分类存储问题。
例10.5 统计从地址0040H:0000H开始的100个字中,把正数和负数按照它们先后出现的次序分别存储在缓冲区Data1和Data2,并把每类的个数存入相应缓冲区的第一个字单元中。
解:由于在指定地址之后的100个字中,可能存在全是正数或负数的情况,所以,缓冲区Data1和Data2的容量都应是100个字。
.MODEL SMALL.DATANum = 100Data1 D W ?, Num dup(?)Data2 D W ?, Num dup(?).CODE.STARTUPMOV AX, 40HMOV ES, AXLEA SI, Data1+2 ;指向存储正数的缓冲区LEA DI, Data2+2 ;指向存储负数的缓冲区XOR BX, BX ;BX用于扫描存储单元MOV CX, 100 ;字符个数.REPEATMOV AX, ES:[BX]ADD BX, 2CMP AX, 0.CONTINUE .IF ZERO?MOV [SI], AX ;向正数缓冲区内存储数据ADD SI, 2.CONTINUEnext1:MOV [DI], AX ;向负数缓冲区内存储数据ADD DI, 2.UNTILCXZSUB SI, OFFSET Data1+2SUB DI, OFFSET Data2+2SHR SI, 1SHR DI, 1MOV Data1, SIMOV Data2, DI ;把每类的统计个数存入缓冲区的第一个字单元.EXIT 0END例10.6 用键盘输入任意一字符串,分类统计该字符串中每个数字和字母的出现次数。
解:.MODEL SMALL.DATAN = 80Buff DB N, ?, N DUP(?)Num DW 36 DUP(0) ;每个字用于存放'0'~'9','A'~'Z'出现的个数.CODE.STARTUPLEA DX, BuffMOV AH, 0AHINT 21H ;输入一个字符串XOR CH, CHMOV CL, Buff+1 ;CX=输入字符串的个数LEA SI, Buff+2XOR BX, BX.REPEATMOV BL, [SI] ;考虑下面的思考题INC SI.IF BL>='0' &&BL<='9';分类统计'0'~'9'中的每个数字的个数SUB B L, '0'ADD B X, BXINC N um[BX].ENDIF.IF BL>='a' && BL<='z'SUB B L, 20H ;小写变大写.ENDIF.IF BL>='A' &&;分类统计'A'~'Z'中的每个字母的个数BL<='Z'SUB B L, 'A'-10ADD B X, BXINC N um[BX].ENDIF.UNTILCXZ.EXIT 0END思考题:在本例中,用指令“MOV BL, [SI]”来把当前检测的字符存入BL,当然,我们也可以用AL来代替BL,有关指令要作相应的改动,但这样做,会更方便吗?希望读者能知道:为什么要用BL,而不用AL?10.3 数据转换程序数据类型转换是输入输出过程中经常遇到的问题。
输入时,计算机系统要把用户从键盘上输入的字符串转变成相应的数值,并存储在内存中;输出时,要把计算机内部的二进制数据形式转换成相应的十进制字符串,然后再输出。
在高级语言编程环境中,程序员能用各种输入输出语句,按一定的格式进行交互式操作,很少或根本不关心输入输出是如何实现的。
有的程序员甚至认为其输入的就是十进制数值,输出数据也就是把内存中存储的数据直接输出出来。
其实,输入输出过程并不是如此简单,计算机系统要进行复杂而又细致的数据类型转换和格式化等工作。
本节试图通过用汇编语言实现数据类型的转换来反映输入输出的本来面目,使程序员在用高级语言编程时,对其输入输出语句的实现过程有所了解,也知道有别人(或编译程序)帮他完成了输入输出的准备工作。
例10.7 编写一个程序,它能把字类型变量的数值以十进制形式输出出来。
若该数值为负数,则需要输出负号"-",否则,不输出符号。
解:鉴于按二进制输出的特殊性,我们可以把它优化成例10.8的形式,按十六进制输出也可以按“四位二进制对应一位十六进制”的规则进行优化的。
例10.8 编写程序,它能把字类型变量的数值以二、八进制或十六进制形式输出出来。
若该数值为负数,则需要输出负号"-",否则,不输出符号。
解:一、按二进制形式输出的程序二、按八进制形式输出的程序三、按十六进制形式输出的程序例10.7是用“用16位除10”的方法从低向高依次得到每位的数值,但若待输出的数据是32位,用10除之后,其商很可能会超过16位,所以,不能简单地引用例10.7的方法来输出32位二进制。