为此,出现了用代表指令意义的助记符表示指令。后面的字节称为“操作数”,表示端口的编号是00。将助记符表示的程序变换为包括地址和机器码在内的可执行程序的过程,称为“汇编”。对“宏”助记符指令进行的“汇编”,称为“简易汇编”。利用“宏”作为学习8051汇编语言和C语言的入门阶梯,对初学者是较好的一种选择。......
2025-09-30
1.十进制、二进制和十六进制
十进制(Decimal)有进位计数的累积和进位特征。十进制数由0,1,2,…,9共10个数码表示,并遵循“逢十进一”的进位计数规则。十进制的计数基数是10。例如
780=7×102+8×101+0×100上式称为按“权”展开式。各位数的权值为10的幂,即个位数的权为100,十位数的权为101,百位数的权为102等。
二进制(Binary)遵循十进制数的分析过程,我们同样可以确定,二进制数要由两个数码表示,即0和1,并遵循“逢二进一”的进位计数规则。二进制数的计数基数是2,各位的权值为2的幂。例如,1101B=1×23+1×22+0×21+1×20=13。
十六进制(Hexadecimal)十六进制数要由16个数码表示,即0,1,2,…,9,A,B,C,D,E,F,并遵循“逢十六进一”的进位计数规则。十六进制的计数基数是16。在十六进制中A表示值为10的数码,B表示值为11的数码,…,F表示值为15的数码。各位的权值为16的幂。例如,3ABH=3×162+A×161+B×160=3×256+10×16+11×1=939。
2.各种进制的转换
二进制数与十进制数的相互转换,按如下步骤进行:
二进制数转换成十进制数。将一个二进制数转换成十进制数表示,只需按权展开做一次10进制运算即可以完成。
【例1-10】 将二进制数11101010B转换成十进制数
11101010B=1×27+1×26+1×25+0×24+1×23+0×22+1×21+0×20
=128+64+32+8+2=234
十进制数转换成二进制数。将一个十进制数转换成二进制数表示,是数据转换中较复杂的工作。这里我们只涉及整数部分,转换方法是将十进制整数除以2取余数,直到商为0。
【例1-11】 将十进制数45转换成二进制数
转换过程为
转换结果为
由于我们的学习主要涉及8位二进制数的处理,若结果不够8位,要将已得的位数高两位补0,即45=00101101B,两种表示数值相同,为了阅读方便,统一用8位二进制数表示。
3.二进制数与十六进制数的相互转换
【例1-12】 将十六进制数3ACDH转换成二进制数
转换过程为
转换结果为
3ACDH=0011101011001101B
二进制数转换为十六进制数。将二进制数转换为十六进制数,可以表述为以二进制数最低位为起点,向前每4位作为一组,若取到最高位时不足4位可补0代替,每一组4位二进制数即可写出对应的十六进制数,按由低到高位排列即得结果。
【例1-13】 将二进制数010101111011B转换为十六进制数
转换过程为
转换结果为
010101111011B=57BH
4.二进制数的算术运算
对于二进制数的算术运算,像通常十进制数的算术运算一样,做加、减运算时,个位要对齐。做乘、除运算时,其法则与十进制数也是相同的。与十进制不同的是,在运算过程中始终要遵循“逢2进1”的运算规则。
(1)加法运算法则(见表1-2)
表1-2 加法运算法则
【例1-14】 求00010011B+00100011B
运算过程为
故00010011B+00100011B=00110110B
验算00010011B=16+2+1=19
00100011B=32+2+1=35 19+35=54
结果00110110B=32+16+4+2=54,正确
【例1-15】 求11111111B+00000001B
运算过程为
由于只涉及8位二进制数,进位位无法显示
11111111B+00000001B=0进位位=1
验算11111111B=255
00000001B=1 255+1=256
结果100000000B=256进位位=1
(2)减法运算法则(见表1-3)
表1-3 减法运算法则
【例1-16】 求00010110B-00001001B
运算过程为
故00010110B-00001001B=00001101B
验算00010110B=32 00001001B=9 32-9=13
结果00001101B=13 正确
【例1-17】 求00000000B-00000001B(https://www.chuimin.cn)
运算过程为
故 00000000B-00000001B=11111111B
验算00000000B=0 00000001B=1 0-1=-1
结果11111111B=-1 因为若x=11111111B
x+1=0,x=-1
(3)乘法运算法则(见表1-4)
表1-4 乘法运算法则
【例1-18】 求00001101B×00000110B
运算过程为
故 00001101B00000110B=01001110B
验算00001101B=13
00000110B=6 136=78
结果01001110B=78 正确
(4)除法运算法则(见表1-5)
表1-5 除法运算法则
【例1-19】 求00001101B÷00000110B
运算过程为
故 00001101B/00000110B=10B=2
余数=0001B=1
验算00001101B=13
00000110B=6 13/6=2,余数=1
5.二进制数的逻辑运算
上面讲到,计算机中的数据是以二进制为基础的,只有“1”和“0”两个值,这是一种对应的逻辑值,而不能理解为数值。在生活中“真”和“假”,“对”和“错”都可以看作为逻辑值。如果“真”是1,“假”就是0,“高”是1,“低”就是0。对逻辑值,有一套特有的运算规则。它不同于数值运算。例如,对于逻辑值1+1=1。这在算术运算中是不成立的,但对逻辑值运算却是正确的。
二进制数可以进行按位的逻辑运算,每位之间相互独立,位与位之间不存在进位和借位的关系。
(1)逻辑与(AND)
逻辑与的运算法则与二进制乘法相类似。因此,与运算通常用“”或“&”来表示,其运算法则见表1-6。
表1-6 逻辑与的运算法则
由运算法则可知,逻辑与的意义是只有当参与运算的逻辑变量都为1时,与运算的结果才会为1。只要其中有一个为0,其结果就为0。
【例1-20】 逻辑与运算 10101111B&10011101B=10001101B
运算过程为
(2)逻辑或(OR)
逻辑或的运算法则类似于二进制加法。因此,或运算通常用“+”或“|”表示,其运算法则见表1-7。
表1-7 逻辑或的运算法则
由运算法则可知,逻辑或的意义是当参与运算的逻辑变量中有任意一个为1时,或运算的结果就为1。只有都为0时,其结果才为0。
【例1-21】 逻辑或运算 10101010B+01100110B=11101110
运算过程为
(3)逻辑非(NOT)
逻辑非就是逻辑取反,用逻辑量再加一横线表示。例如,A的逻辑非即。逻辑非的运算法则见表1-8。
表1-8 逻辑非运算的法则
【例1-22】 若A=10101100B,则。
(4)逻辑异或(XOR)
异或运算可以通过基本逻辑运算实现。,用“⊕”表示,逻辑异或运算法则见表1-9。
表1-9 逻辑异或运算法则
【例1-23】 逻辑异或 10101100B⊕01100110B=11001010B
运算过程为
由运算法则可知,逻辑异或运算是只有在两个逻辑变量的值不同时,其结果才为1。否则结果为0。用异或运算的结果可以很容易地判断两个逻辑变量是否相同。
逻辑运算在数据处理过程中经常使用。例如,A是一个8位二进制数,若要得到A的低4位数,只要做逻辑运算“A00001111B”,高4位被屏蔽,结果就是低4位数。
相关文章
为此,出现了用代表指令意义的助记符表示指令。后面的字节称为“操作数”,表示端口的编号是00。将助记符表示的程序变换为包括地址和机器码在内的可执行程序的过程,称为“汇编”。对“宏”助记符指令进行的“汇编”,称为“简易汇编”。利用“宏”作为学习8051汇编语言和C语言的入门阶梯,对初学者是较好的一种选择。......
2025-09-30
单片机是将CPU+ROM+RAM+I/O集成在一块小小的芯片上,这种结构使用非常灵活,可以“嵌入”任何控制对象内,组成嵌入式系统。单片机中的片内程序存储器是一种可编程可擦除的只读存储器。通用计算机的CPU主要是进行高速数据处理。单片机体积很小,可以直接“嵌入”到机器的控制板上,实际上就是将计算机系统嵌入到机器内,组成所谓的“嵌入式系统”。......
2025-09-30
所谓DIY即自己做。要实现DIY并不困难,只要具备基本的电子电路的焊接技能,了解电子元器件的基础知识,会使用多用表(万用表),就可以按照本书的步骤完成本单片机实验机的自装,并能顺利地投入使用。一般用5色环表示阻值和准确度。用数字万用表测量所有电阻阻值,应在规定误差范围内。若最后数字万用表的显示不能超出量程,说明电容存在漏电,耐压条件不合格,不能使用。......
2025-09-30
本例是为了进一步熟悉PC上的编程方法。在PC左侧指令表中选SUBX n并双击,弹出对话框,输入标号地址X3,然后单击“确定”按钮,在.asm文件窗口显示语句。子程序的结束要用RETX指令结束。在第3个子程序结束后,选用END做整个程序结束。至此,汇编完成。利用0D、0E输出可以控制74HC164显示任意字形,包括文字和数字,例如“P”、“L”、“0”、“8”等。......
2025-09-30
为此,我们采用逐次逼近,边焊边试的操作方法,保证读者能100%按质量完成整机装焊。用逻辑笔测试U3-74HC164的引脚13、12、11、10、6、5、4、3的状态,应为11000110。若不能显示以上状态,应立即断开电源开关K1,逐项检查。如果直接进行下一步会相当危险,可能导致整板报废。2)插放芯片U2、U3、U4、U5及数码管。达不到要求不能进行下一步。按第3步3)操作,应正常显示。......
2025-09-30
在Abaqus/Explicit中,每个用户子程序都必须在形参列表的后面包含下面的语句,与Abaqus/Standard中类似,这也是用来声明隐式类型的变量和指定浮点数的单双精度的:注意:事实上,上面的两条语句并不是必需的,但包含这两条语句能避免很多不必要的错误,这是一种好的编程习惯。下面是测试用户子程序的一些编程技巧:尽可能地测试最小的模型。另外,下面的一些编程习惯对于编写漂亮的、可读性高的用户子程序也是非常重要的,在编写用户子程序时需要特别注意。......
2025-09-30
用二进制数也可以很容易进行加、减、乘、除的算术运算。用电子技术处理二进制数,与传统的模拟电路的处理方法有很大不同。由于二进制数是只有“1”和“0”的两值逻辑变量,它必须用数字逻辑电路处理,数字逻辑电路是计算机组成的硬件基础。这种由计算机发展而带来的数字化,其影响绝不止仅限于计算机领域,它对通信传输也产生了巨大的影响。......
2025-09-30
在上电的条件下,用各种手段检验元器件的工作是否正常,为软件运行检验创造条件。若以上各项检验通过,即可进入下一项。若发现存在不正常情况,应消除缺陷后再进入下一项检验。装入U1、U5到IC插座,最后将带有驻机程序的单片机装入到U2插座。证明RAM信息已被擦除,检验正确。......
2025-09-30
相关推荐