微机原理实验指导书

导读:实验步骤,实验程序如下:,实验程序及流程图如下:(设源数存于3500-3501H单元中,STACK1SEGMENTSTACKDW64DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVSI,3500H;设置待转换数据区的地址指针MOVDI,3510H;设置结果数据区的地址指针MOVBX,000AH;乘数1012MOVCX,0004H;循环4次MOV

微机原理实验指导书

STACK1 SEGMENT STACK

DW 64 DUP(?)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE

START: MOV SI,3500H ;设置待转换数据区的地址指针

MOV DI,3510H ;设置结果数据区的地址指针

MOV BX,000AH ;乘数10

12

MOV CX,0004H ;循环4次

MOV AH,00H

MOV AL,[SI] ;取第一位ASCⅡ码

SUB AL,30H ;转换成二进制数

A1: IMUL BX ;乘10

ADD AL,[SI+01] ;加次位

SUB AL,30H

INC SI ;修改地址指针

LOOP A1 ;循环

MOV [DI],AX ;保存结果

A2: JMP A2

CODE ENDS

END START

实验步骤

(1)输入源程序,进行编译、链接和加载。

(2)在3500-3504H单元存入十进制数12的ASCⅡ码,即在调试区键入E0000:

3500↙,并输入30 30 30 31 32。

(3)连续运行程序后停止运行,查看运行结果,即在调试区键入D0000:3510

↙,显示结果应为:0000:3510 0C 00。

(4)反复试几组数,并运行程序,观察结果。

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

设从键盘输入的五位十进制数的ASCⅡ码已存放在3500H起始的内存单元内,

把它转换为 BCD 码后,再按位分别存入 350AH 起始的内存单元内。若输入的不是 13

十进制数的ASCⅡ码,则对应存放结果的单元内容为“FF”。由表2-1可知,一字节ASCⅡ码取其低四位即变为BCD码。实验程序如下:

STACK1 SEGMENT STACK

DW 64 DUP(?)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE

START: MOV CX,0005H

MOV DI,3500H

A1: MOV BL,0FFH

MOV AL,[DI]

CMP AL,3AH

JNB A2

SUB AL,30H

JB A2

MOV BL,AL

A2: MOV AL,BL

MOV [DI+0AH],AL

INC DI

LOOP A1

A3: JMP A3

CODE ENDS

END START

;循环计数器赋初值 ;ASCⅡ码首址 ;将错误标志送入BL ;送ASCⅡ码至AL ;比较AL与3A ;不低于3A则转A2 ;低于3A则取ASCⅡ码低4位 ;低于30则转A2 ;否则AL内容送入BL,取代FF ;结果或错误标志送入AL 14

实验步骤

(1) 阅读程序,画出程序流程图。

(2) 输入源程序,进行编译、链接和加载。

(3) 在3500-3504H单元中存放五位十进制数的ASCⅡ码,即在调试区键入

E0000:3500↙,并输入31、32、33、34、35。

(4) 连续运行程序后停止运行,查看运行结果,即在调试区键入D0000:350A

↙,显示结果应为:0000:350A 01 02 03 04 05 CC ?

(5) 反复试几组数,并运行程序,观察结果。

3.将十六位二进制数转换为ASCⅡ码表示的十进制数

十六位二进制数的值域为0-65535,最大可转换为五位十进制数。

算法:五位十进制数可表示为:

ND?D4?104?D3?103?D2?102?D1?10?D0

因此,将十六位二进制数转换为五位ASCⅡ码表示的十进制数,就是求D1-D4,

并将它们转化为ASCⅡ码。实验程序及流程图如下:(设源数存于3500 -3501H 单元中,结果数存于3510-3514H单元中)

STACK1 SEGMENT STACK

DW 64 DUP(?)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE

START: MOV SI,3500H

MOV DX,[SI] MOV SI,3515H

A1: DEC SI

15

五星文库wxphp.com包含总结汇报、资格考试、旅游景点、出国留学、文档下载、党团工作、考试资料、教学研究以及微机原理实验指导书等内容。

本文共17页1234567>>17