二进制数和十六进制数之间转换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北华航天工业学院

课程设计报告(论文)

设计课题:二进制数和十六进制数之间转换专业班级: 3

学生姓名:

指导教师:

设计时间:

北华航天工业学院电子工程系

微型计算机原理与接口技术课程设计任务书

指导教师:教研室主任:

年月日

内容摘要

在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCII码和七段显示码等。这些数制和编码根据其作用的不同,在存储形式上也有差异。在实际应用中,它们也因使用的要求不同而有所差异。在配备操作系统管理程序的计算机中,有些代码转换程序已在系统管理软件中编好。还有些代码转换需要根据使用要求通过编程完成。因此,代码转换是非数据处理中最常见的情况。

索引关键词:代码转换二进制十六进制DOS系统

目录

一概述 (4)

1-1设计目的 (4)

1-2设计要求 (4)

二方案设计与论证 (4)

2-1二进制向十六进制的转换 (4)

2-2十六进制向二进制的转换 (4)

三程序分析 (5)

四程序流图 (7)

五运行结果 (10)

六心得体会 (10)

七参考文献 (10)

一、概述

1.设计目的

(1)增进对汇编语言的认识,加强汇编语言编辑能力;

(2)掌握汇编语言的中断调用的功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现了对硬件的控制;

(3)了解和掌握汇编语言程序的设计过程,方法和实现,为以后的学习打下良好的基础;

(4)培养分析解决问题的能力;

(5)提高科技论文写作能力。

2设计要求

按屏幕提示要求输入,从屏幕上获得正确结果。

二、方案设计与论证

在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCll码和七段显示码等。这些数制和编码根据其作用的不同,在存储形式上也有差异。在实际应用中,它们也因使用的要求不同而有所差异。在配备操作系统管理程序的计算机中,有些代码转换程序已在系统管理软件中编好。还有些代码转换需要根据使用要求通过编程完成。因此,代码转换是非数据处理中最常见的情况。

模块1实现二进制数向十六进制数的转换,用循环左移指令ROL每次移动4位,取出移到最低的4位,利用十六进制数所对应的ASCll码比其本身大30H(0-9)或37H(A-Z)的关系,将低4位转换成对应的ASCll码,再调用DOS系统功能调用中的2号(显示字符)功能,将转换后的字符显示出来。如此循环4次。

模块2实现十六进制数向二进制数的转换,完成此功能需要两个步骤,第一步是十六进制数的输入和对应二进制数的转换。方法是利用DOS系统功能调用中的1号输入字符的功能,接收键盘输入的十六进制数,将其转换成对应的二进制数(若是0-9之间的数,直接屏蔽高4位;若是A-F之间的数,在屏蔽高4位后还要加9)。BX中存放的是二进制数的结果,利用算术左移指令每次将BX 左移4位,然后与下一次转换后的数相加。如此循环4次,得到对应的二进制数。第二步是显示转换后的二进制数,方法是利用ROL和RCL指令,从最高位起循环取出每位二进制数,将其转换成对应的ASCll码,调用DOS系统功能调用中的2号(显示字符)功能显示。

三程序分析

DATAS SEGMENT

BUF DB 'PLIEASE ENTER CHARACTERS',0DH,0AH,'$'

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START: MOV AH,1

INT 21H

CMP AL,5

JB NEXT2

NEXT: MOV AX,DATAS ;十六进制转为二进制

MOV DS,AX;

LEA DX,BUF

MOV AH,9

INT 21H ;9号功能调用,键盘显示

MOV CL,4

MOV CH,4

SUB BX,BX ;BX清零

L1: MOV AH,1

INT 21H

MOV AH,0

CMP AL,'A' ;AL与A比较

JB L2 ;低于A则转移到L2子程序

AND AL,0FH ;AL和0F按位与

ADD AL,9 ;AL和9相加,结果送回AL JMP L3

L2: AND AL,0FH

L3: SHL BX,CL ;将BX逻辑左移4次

ADD BX,AX

DEC CH;将CH-1

JNZ L1

MOV CX,10H

L4: ROL BX,1 ;BX中的值左移1位

MOV DX,BX

AND DX,1H

OR DL,30H ;DL和30H按位或

CMP DL,3AH

JB DDD

ADD DL,07H

DDD: MOV AH,2 ;2号功能调用,键盘显示

INT 21H

LOOP L4 ;L4循环

JMP OOO

NEXT2: MOV AX,DATAS ;二进制转为十六进制

MOV DS,AX

LEA DX,BUF

MOV AH,9

INT 21H

MOV CX,10H

SUB AX,AX ;AX清零

SUB DX,DX

L6: MOV AH,1

INT 21H

AND AX,0FH

SHL DX,1

ADD DL,AL

LOOP L6

MOV CH,4

MOV CL,4

LLP: ROL DX,CL

PUSH DX ;入栈

AND DX,0FH

OR DL,30H

CMP DL,3AH

JB DDT

ADD DL,07H

DDT: MOV AH,2

INT 21H

POP DX ;出栈

DEC CH

JNZ LLP

OOO: MOV AH,4CH

INT 21H ;返回DOS CODES ENDS

END START

相关文档
最新文档