弗原創IT教育中心 例:将R2中BCD码数转为二进制数存进R2。 此子程序在下一例中还要用到) ORG 2000H BCD2B: MOV A, R2 取入口数据 ANLA,#0FOH;取出十位 SWAP A 高4位低4位 Mov B. #OAH MUL AB ;十位乘10 Mov R3. A ;积暂存进R3 Mov A. R2 ;再取入口数据 ANLA,#0FH;取出个位 ADD A, R3 MOv R2. A ;结果R2 RET;若不是子程序可用END
例:将R2中BCD码数转为二进制数存进R2。 (此子程序在下一例中还要用到) ORG 2000H BCD2B:MOV A, R2 ;取入口数据 ANL A, #0F0H ;取出十位 SWAP A ;高4位 低4位 MOV B, #0AH MUL AB ;十位乘10 MOV R3,A ;积暂存进R3 MOV A, R2 ;再取入口数据 ANL A, #0FH ;取出个位 ADD A, R 3 MOV R2,A ;结果 R2 RET ;若不是子程序可用END
弗原創IT教育中心 二.分支程序 根据不同条件转向不同的处理程序, 这种结构的程序称为分支程序。 80C51指令系统中的条件转移指令、 比较转移指令和位转移指令,可以实现分 支程序
二.分支程序 根据不同条件转向不同的处理程序, 根据不同条件转向不同的处理程序, 这种结构的程序称为分支程序。 这种结构的程序称为分支程序。 80C51指令系统中的条件转移指令、 比较转移指令和位转移指令,可以实现分 支程序
弗原創IT教育中心 已知X、Y均为8位二进制有符号数,分别存在 30H.31H中,试编制能实现下列符号函数的程序: 开始 +1,当X>0 X=0? ⅣY={0,当X=0 X>0?N 当X<0[¥0[Y 结束
已知X、Y均为8位二进制有符号数,分别存在 30H.31H中,试编制能实现下列符号函数的程序:
弗原創IT教育中心 开始 实现程序如下: X=0?N X>0? X EQU 30H CQU 31H y0[y-1[Y SIN: MOv A, X ;读X SINI 若X=0,转 结束 Ac.7,SN2;若X<0,转 Mov Y#1 ;若X>0,则1→Y RET SIN1: MOV Y,#0 ;C=0,则0→Y SIN2: Mov Y, #OFFH ;X<0,则-1→Y(-1的补码
实现程序如下:
弗原創IT教育中心 将ASCI码转换为十六进制数。设ASCI码放在累加 器A中,转换结果放到B中 解:由ASCI码表(表1-4)可知,30H~39H为 0~9的ASCI码,41H~46H为A~F的 ASCII码。将 ASCI码减30H(0~9)或37H(A~F就可获得对应的 十六进制数。程序如下: CIl: CIR C SUBB A,# 30H A-30H CNEA,#0A,S3;差值与0比教,在C中产生<1或≥0标志 ASO: JC ASC1 ;<10,已变换为Ame SUBB A,#OTH ;≥10,再减7 SC1: MOV B, A ;存转换结果 RET
将ASCII码转换为十六进制数。设ASCII码放在累加 器A中,转换结果放到B中。 解:由ASCII码表(表1-4)可知,30H~39H为 0~9的ASCII码,41H~46H为A~F的ASCII码。将 ASCII码减30H(0~9)或37H(A~F)就可获得对应的 十六进制数。程序如下: