代码转换程序设计

更新时间:2023-05-29 11:10:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

汇编语言代码转换程序设计

4 常用汇编语言程序设计

汇编语言代码转换程序设计

汇编语言程序设计

汇编语言程序设计的步骤 熟悉与分析工作任务, 熟悉与分析工作任务,明确其要求和要达到的 工作目的、技术指标等; 工作目的、技术指标等; 确定解决问题的计算方法和工作步骤; 确定解决问题的计算方法和工作步骤; 画工作流程图; 画工作流程图; 分配内存工作单元, 分配内存工作单元,确定程序与数据区存放地 址; 按流程图编写源程序; 按流程图编写源程序; 上机调试、修改及最后确定源程序。 上机调试、修改及最后确定源程序。2

汇编语言代码转换程序设计

汇编语言程序设计-代码转换 汇编语言程序设计 代码转换

代码转换 由于计算机内部的运算都是用二进制, 由于计算机内部的运算都是用二进制,而在计 算机与外设的数据传送中常采用BCD码、 算机与外设的数据传送中常采用 码 ASCII码和其他代码,因此存在代码转换问题。 码和其他代码, 码和其他代码 因此存在代码转换问题。 代码转换的方法 算法处理 根据待转换的两种代码的某种数学上的运算关 通过一定的算法进行转换。 系,通过一定的算法进行转换。 查表法 将两种待转换的代码对应列表, 将两种待转换的代码对应列表,然后用查表指 令进行转换。 令进行转换。 3

汇编语言代码转换程序设计

汇编语言程序设计-代码转换 汇编语言程序设计 代码转换

【例】将累加器A中0~FFH范围内的二进制数 将累加器 中 范围内的二进制数 转换为BCD数(0~255)。 转换为 数 )。 说明: 说明: BCD码有两种存放形式 码有两种存放形式 一个字节存放一位BCD码,高半字节取 , 1一个字节存放一位 码 高半字节取0, 常用于显示和输出; 常用于显示和输出; 一个字节存放两位BCD码,即压缩 2一个字节存放两位 码 即压缩BCD码, 码 有利于节省存储空间。 有利于节省存储空间。 编程思路 中的二进制数除以100, 将A中的二进制数除以 ,所得商即为百位 中的二进制数除以 将余数再除以10,所得商即为十位数, 数,将余数再除以 ,所得商即为十位数,余 4 数即为个位数。 数即为个位数。

汇编语言代码转换程序设计

汇编语言程序设计-代码转换 汇编语言程序设计 代码转换BTB:MOV B,#100 : , DIV AB 中为百位数, 中为余数 ;A中为百位数,B中为余数 中为百位数 MOV @R0,A ;存百位数 , INC R0 ;指向存放十位和个位的单元 MOV A,#10 , XCH A,B , DIV AB 中为十位数, 中为个位数 ; A中为十位数,B中为个位数 中为十位数 SWAP A ;十位数移到高半字节 ORL A,B ;合并形成十位和个位的压缩 合并形成十位和个位的压缩BCD码 , 码 MOV @R0,A , RET5

汇编语言代码转换程序设计

汇编语言程序设计-代码转换 汇编语言程序设计 代码转换 ASCII码(美国标准信息

交换码,American 码 美国标准信息交换码, Standard Code for Information Interchange) 位二进制数表示一个字母或字符的编码方法, 用7位二进制数表示一个字母或字符的编码方法, 位二进制数表示一个字母或字符的编码方法 可表示128个字符,其中包括数码 个字符, 可表示 个字符 其中包括数码0~9以及英文字 以及英文字 母等可打印的字符。常见的如: 母等可打印的字符。常见的如: ASCII码 字符 码 0~9 30H~39H A~Z 41H~5AH a~z 61H~7AH

汇编语言代码转换程序设计

汇编语言程序设计-代码转换 汇编语言程序设计 代码转换 所指单元中的十六进制数转换成ASCII码, 【例】将R0所指单元中的十六进制数转换成 所指单元中的十六进制数转换成 码 并把结果存于原单元中。 并把结果存于原单元中。 方法一: 方法一:算法处理方法 十六进制数码 0 +30H ¦ 9 A +37H ¦ F

ASCII码 码 30H ¦ 39H 41H ¦ 46H7

汇编语言代码转换程序设计

汇编语言程序设计-代码转换 汇编语言程序设计 代码转换HTA:MOV : CLR SUBB JC MOV ADD MOV RET H09:MOV : ADD MOV RET A,@R0;取数 , ; C A,#0AH ;判断数值范围在 判断数值范围在0~9或A~F , 或 H09 ;Cy=1,数值在 ,数值在0~9转H09 转 A,@R0 , A,#37H ;A~F,加37H得ASCII码 , , 得 码 @R0,A , A,@R0 , A,#30H ;0~9,加30H得ASCII码 , , 得 码 @R0,A ,8

汇编语言代码转换程序设计

汇编语言程序设计-代码转换 汇编语言程序设计 代码转换

方法二: 方法二:查表法 HAC: MOV A,@R0 ;取数 , MOV DPTR,#TAB ;ASCII码表首地址 , 码表首地址 MOVC A,@A+DPTR ;查表 , MOV @R0,A , RET TAB: DB 30H,31H,32H,. . . ,39H , , , DB 41H,42H,. . . ,46H;0~F的 , , ; 的 ;ASCII 码表9

汇编语言代码转换程序设计

汇编语言程序设计-代码转换 汇编语言程序设计 代码转换 编程将ASCII码(十六进制数码)转换为十六进 【例】编程将 码 十六进制数码) 制数。 码存放在A中 转换结果放到B中 制数。设ASCII码存放在 中,转换结果放到 中。 码存放在 方法1: 方法 : ASH1:CJNE A,#3AH,NX;判断数码范围 : , , ; NX: JC SS : ;在30H~39H转SS 转 SUBB A,#07H , SS: CLR C : SUBB A,#30H , MOV B,A , RET10

汇编语言代码转换程序设计

汇编语言程序设计-代码转换 汇编语言程序设计 代码转换

方法2: 方法 : ASH2:CLR C : SUBB A,#30H 先减去30H , ;先减去 CJNE A,#0AH,SS ;再判断数码范围 , , SS: JC SS1 : ;在0~9转SS1 转 SUBB A,#07H , SS1: MOV B,A : , RET11

汇编语言代码转换程序设计

汇编语言程序设计-求极值 汇编语言程序设计 求极值

求极值(在一组数据中求最大值或最小值) 求极值(在一组数据中求最大值或最小值) 基于比较的操作 无符号数a、 大小关系的判断 无符号数 、b大小关系的判断

a=b ;a-b=0 a-b a>b ;Cy=0 a<b ;Cy=1

汇编语言代码转换程序设计

汇编语言程序设计-求极值 汇编

语言程序设计 求极值

带符号数a、 大小关系的判断 带符号数 、b大小关系的判断a-b=0则a=b 则 ov=0则a>b 则 > a-b a-b>0且 > 且 ov=1则a<b 则 < ov=0则a<b 则 < a-b<0且 < 且 ov=1则a>b 则 >13

汇编语言代码转换程序设计

汇编语言程序设计-求极值 汇编语言程序设计 求极值 从片内存RAM的BLOCK单元开始有一组无 【例】从片内存 的 单元开始有一组无 符号数据,个数为N 试求出其最大数, 符号数据,个数为N,试求出其最大数,并存入 MAX单元。 单元。 单元

汇编语言代码转换程序设计

汇编语言程序设计-求极值 汇编语言程序设计 求极值MOV R1,#BLOCK ;设置指针,指向第一个数 设置指针, , MOV R2, #N ;比较次数 , MOV A,#0 ;第一次比较的参照数 , LOOP:CLR C : SUBB A,@R1 ;比较 , JNC NEXT ;若A中的数较大,则继续跟下一数比较 中的数较大, 中的数较大 MOV A,@R1 ;取大数 , SJMP NEXT1 NEXT:ADD A,@R1 ;恢复 值 恢复A值 : , NEXT1:INC R1 : ;指向下一个单元 DJNZ R2,LOOP , MOV MAX,A , SJMP $15

汇编语言代码转换程序设计

汇编语言程序设计-搜索、 汇编语言程序设计 搜索、统计 搜索

搜索(在一组数据中查找是否有指定的关键字) 搜索(在一组数据中查找是否有指定的关键字) 统计( 统计(统计一组数据中符合某个指定条件的关键 字的个数) 字的个数)

设有50个有符号数 连续存放在以31H为首地 个有符号数, 【例】设有 个有符号数,连续存放在以 为首地 址的片内数据存储器中,编程统计其中正数的个数, 址的片内数据存储器中,编程统计其中正数的个数, 并将个数存入片内RAM 30H单元。 单元。 并将个数存入片内 单元

汇编语言代码转换程序设计

汇编语言程序设计-搜索、 汇编语言程序设计 搜索、统计 搜索 MOV MOV MOV LP:MOV : JZ JB INC NX:INC : DJNZ SJMP R0,#31H ;设置指针 , R5,#50 , ;循环次数 30H,#0 , A,@R0 , ;取数 NX 数值为0, ;数值为 ,判断下一个 ACC.7,NX ;数值为负,判断下一个 数值为负, , 30H ;正数个数加1 正数个数加 R0 ;指向下一个单元 R5,LP , $17

汇编语言代码转换程序设计

汇编语言程序设计-排序 汇编语言程序设计 排序 排序(对一组数据按升序或降序排列) 排序(对一组数据按升序或降序排列) 设有N个无符号数 连续存放在BUF开始的片内 个无符号数, 【 例 】 设有 个无符号数 , 连续存放在 开始的片内 RAM,编程将它们按升序(从小到大)排列。 ,编程将它们按升序(从小到大)排列。 冒泡法排序: 假设有5个数据: 19, 25, 冒泡法排序 : ( 假设有 5 个数据 : 5 , 19 , 7 , 25 , 1 ) 第一轮排序: 第一轮排序:交 19 换

5 不

5 19 交 7 25 1换

5 7 19 不 25 1交 换

5 7 19 25 1交 换

5 7 19 1 2518

7 25 1

汇编语言代码转换程序设计

汇编语言程序设计-排序 汇编语言程序设计 排序

第二

轮排序: 第二轮排序:5 7 19 1 25 5 7 19 1 25 5 7 19 1 25 5 7 1 19 25 5 7 1 19 25

. . .

最多应进行N-1轮排序。为 轮排序。 最多应进行 轮排序 减少比较次数, 减少比较次数,设置一个 标志位反映一轮排序过程 中是否发生数据交换, 中是否发生数据交换,如 果没有发生数据交换, 果没有发生数据交换,就 表示数据已按顺序排列。 表示数据已按顺序排列。19

汇编语言代码转换程序设计

流程图: 流程图:

开始 设置地址指针,循环次数, 设置地址指针,循环次数,有 序标志位( 序标志位(00H)=0 ) 取相邻两数Xi 取相邻两数 Xi+1比较 比较Y Y

Xi<Xi+1 N N 交换位置 置无序标志位( 置无序标志位(00H)=1 ) 本轮比较结束

NN

N

YYN

有 序 ? Y YY 结束20

汇编语言代码转换程序设计

汇编语言程序设计-排序 汇编语言程序设计 排序 ST: MOV R2,#(N-1) ;置每轮比较次数 : , ( ) MOV R0,#BUF , ;置数据首单元地址 CLR 00H 交换标志清0 ;交换标志清 ST1:MOV A,@R0 : , ;取Xi MOV B,A , INC R0 指向X ;指向 i+1 CLR C SUBB A,@R0 , ;比较 JC NOEX ;Cy=1,即Xi< Xi+1,不交换 ,

本文来源:https://www.bwwdw.com/article/bpp4.html

Top