微机原理实验报告(3)

2019-05-24 15:58

5. 更改数据区中的数据,考察程序的正确性。

图3-5 BCD码转换为二进制码

参考流程

图3-4 将十六进制数的ASCII码转换

为十进制数参考流程

第 11 页

五、实验报告内容及要求

根据流程图编写程序并调试,写出程序调试过程及运行情况。 1.将ASCII码表示的十进制数转换为二进制数

程序:

DATA SEGMENT

BUFFER DB '00012' DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,BUFFER MOV CX,5 MOV AL,0 BEGIN: MOV DX,0AH MOV BL,[SI] SUB BL,30H MUL DX ADD AL,BL INC SI

LOOP BEGIN MOV CX,8 MOV BL,AL LOOP1: ROL BL,1 MOV DL,BL AND DL,01H ADD DL,30H MOV AH,02H INT 21H LOOP LOOP1 MOV AX,4C00H INT 21H CODE ENDS

END START

程序结果为:00001100

2.将十进制数的ASCII码转换为BCD码

DATA SEGMENT

BUFFER DB 5 DUP(0) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA MOV DS,AX LEA SI,BUFFER MOV CX,5 MOV AH,1H MOV BX,0FFH LOOP1: INT 21H MOV [SI],AL INC SI

第 12 页

LOOP LOOP1 MOV AH,02H MOV DL,0AH INT 21H

MOV DL,0DH INT 21H MOV CX,5

LEA SI,BUFFER LOOP2: MOV DI,4 MOV BL,[SI] CMP BL,'0' JB ERROR CMP BL,'9' JA ERROR SUB BL,30H ROL BL,4 LOOP4: ROL BL,1 MOV DL,BL AND DL,01H ADD DL,30H MOV AH,02H INT 21H DEC DI JNZ LOOP4 INC SI

LOOP LOOP2 JMP END

ERROR: AND BL,0FH ADD BL,'A' MOV DL,BL MOV AH,02H INT 21H INT 21H

END: MOV AX,4C00H INT 21H CODE ENDS

END START

程序结果:01010100001100100001

3.将十六进制数的ASCII码转换为十进制数

DATA SEGMENT

BUFFER DB 000CH RES DB 5 DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA MOV DS,AX LEA SI,BUFFER MOV CX,4 MOV AX,0 MOV BX,0 BEGIN: MOV DX,16

第 13 页

MOV BL,[SI] CMP BX,'9' JNA MARK1 SUB BX,'A' ADD BX,10 JMP MARK2 MARK1: SUB BX,'0' MARK2: MUL DX ADD AX,BX INC SI

LOOP BEGIN MOV BX,10 LEA SI,RES+4 LOOP1: DIV BX ADD DL,'0' MOV [SI],DL DEC SI CMP AX,10 JAE LOOP1 ADD AL,'0' MOV [SI],AL LEA SI,RES MOV CX,5 MOV AH,02H LOOP2: MOV DL,[SI] INT 21H INC SI

LOOP LOOP2 CODE ENDS

END START

程序结果:12

4.BCD码转换为二进制码

DATA SEGMENT

D1 DB 12H,34H,56H,78H C1 EQU $-D1

D2 DB C1 DUP (?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CH,C1 MOV CL,4 MOV SI,0 MOV BH,10 L1: MOV AL,D1[SI] MOV BL,AL AND BL,0FH AND AL,0F0H SHR AL,CL MUL BH ADD AL,BL MOV D2[SI],AL INC SI DEC CH JNZ L1

第 14 页

MOV SI,0 MOV CH,C1 L2: MOV DL,0DH MOV AH,2 INT 21H

MOV DL,0AH MOV AH,2 INT 21H

MOV AL,D2[SI] MOV DL,AL AND DL,0F0H SHR DL,CL ADD DL,30H CMP DL,39H JNA L3 ADD DL,7 L3: PUSH AX MOV AH,2 INT 21H POP AX

AND AL,0FH MOV DL,AL ADD DL,30H CMP DL,39H JNA L4 ADD DL,7 L4: MOV AH,2 INT 21H INC SI DEC CH JNZ L2

MOV AH,4CH INT 21H CODE ENDS

END START

程序结果为:0000010011010010

六、实验思考

通过实验,对不同进制数及编码相互转换的程序设计方法有一定的了解和掌握。

第 15 页


微机原理实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:容规〉解析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: