微机原理软件实验(2010.10)(5个)
微机原理实验报告

微机原理实验报告概述:微机原理是计算机科学与技术专业中的一门重要课程,通过实验学习,可以加深对计算机内部运行原理的理解,提高软硬件的开发和调试能力。
本实验报告将介绍我对微机原理实验的学习和思考。
实验一:二进制转换实验在这个实验中,我首先了解了二进制数的概念以及其和十进制数的转换方法。
通过实际操作,我加深了对计算机内部数据表示方式的理解。
这对于后续学习计算机系统结构和编程语言至关重要。
实验二:逻辑门电路实验逻辑门电路是计算机硬件的基础组成部分,通过实验,我学会了使用逻辑门芯片构建各种逻辑电路,并能够通过真值表分析和验证逻辑电路的正确性。
这对于理解计算机内部的数据处理和控制逻辑有着直接的帮助。
实验三:运算器设计实验在这个实验中,我通过学习和设计算术逻辑单元(ALU),了解了计算机的算术操作过程,并能够通过运算器实现基本算术运算。
这对于理解计算机内部数据的处理和计算机指令的执行有着重要的意义。
实验四:存储器与外设实验存储器是计算机系统的重要组成部分,通过实验,我深入了解了存储器的类型、组织结构和访问方式,并通过外设与存储器的交互,实践了计算机系统的输入和输出过程。
实验五:微处理器实验微处理器是计算机系统中最核心的部件,通过实验,我学习了微处理器的基本运行原理,能够通过汇编语言编写程序,并通过微处理器执行程序实现特定的功能。
这个实验为我今后学习计算机体系结构和操作系统打下了坚实的基础。
实验总结:通过这几个实验,我深入了解了微机原理课程的实践内容和相关知识。
实验的过程中,我不仅学会了使用仪器设备和工具,还培养了自己的动手能力和团队合作精神。
通过不断的实践,我对计算机内部结构和运行原理有了更深刻的理解,也提高了我的问题解决能力和创新思维。
未来展望:微机原理实验的学习只是计算机科学与技术专业中的一小部分。
我希望在今后的学习过程中能加深对计算机体系结构、操作系统、编程语言等方面的学习,并不断深入钻研,成为一名优秀的计算机科学与技术专业人才。
微机原理实验指导书(软件)

实验一系统认识与数码转换实验一、实验目的1.学习汇编语言的开发过程。
2.熟练掌握DEBUG调试程序。
参考书后附录E二、实验设备PC机一台三、实验内容及步骤1.系统认识实验在内存缓冲区BUFF中存储0-F共16个字节数据,实验参考程序如下:DATA SEGMENTBUFF DB 16 DUP (?);定义数据段DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DI,OFFSET BUFF ;设置缓冲区首址MOV CX,16 ;字节数送入CX中MOV AL,0A1: MOV [DI],AL ;写入一字节INC DI ;修改地址指针INC AL ;修改数据LOOP A1 ;未填完循环MOV AH,4CHINT 21HCODE ENDS ;代码段结束END START ;程序结束实验步骤:(1)把实验用的相关软件拷贝到PC机中,比如D盘的HUIBIAN文件夹(D:\HUIBIAN)。
(2)进入DOS环境(开始\程序\附件\‘C:\命令提示符’),进入路径D:\HUIBIAN。
(3)编辑,启动编辑软件EDIT,输入源程序,检查无误后存盘,如文件名11.ASM。
(4)汇编,即键入MASM 11.ASM回车,通过后应生成文件11.OBJ。
(5)连接,即键入LINK 11.OBJ回车,通过后应生成文件11.EXE。
(6)调试,即键入DEBUG 11.EXE,进入调试软件DEBUG来调试源程序。
DEBUG的用法可参考教材的附录E。
(7)运行程序,观察结果是否正确。
2.数码转换实验将十进制数的ASCⅡ码转换为BCD码。
设五位十进制数的ASCⅡ码已存放在内存缓冲区BUF1中,转换为 BCD 码后,再分别存入内存缓冲区BUF2中。
提示:一字节ASCⅡ码取其低四位即变为BCD码。
实验程序如下:DATA SEGMENTBUF1 DB 31H,32H,33H,34H,35H ;定义数据段BUF2 DB 5 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV CX, 5 ;循环计数器赋初值MOV SI,OFFSET BUF1 ;ASCⅡ码首址MOV DI,OFFSET BUF2 ;BCD码首址A1: MOV AL,[SI] ;送ASCⅡ码至ALCMP AL,3AH ;比较AL与3AJAE A2 ;大于3A则转A2SUB AL,30H ;小于3A则取ASCⅡ码低4位JB A2 ;小于30则转A2MOV [DI],AL ;保存结果A2: INC SIINC DILOOP A1MOV AH,4CHINT 21HCODE ENDSEND START实验步骤(1)输入源程序,进行汇编、连接。
微原软件实验报告

微机原理与接口技术软件实验一、实验目的1.掌握汇编程序的编辑,编译,连接和执行的全过程;2.学习和掌握用DEBUG调试程序的方法.二、源程序DAT SEGMENTA DB 4 ;(自定)B DB 5 ;(自定)Y DB 3 DUP(0)Z DB 0,0DAT ENDSSTA SEGMENT STACKDW 50 DUP(?)STA ENDSCOD SEGMENTASSUME CS:COD,DS:DATSTAR PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATMOV DS,AXMOV AX,STAMOV SS,AXMOV AL,AMOV Z,ALMOV Z+1,ALCALL SUB1 ;A*AMOV AL,BMOV Z,ALMOV Z+1,ALCALL SUB1 ;B*BMOV AL,AMOV Z,ALMOV AL,BMOV Z+1,AL ;Z stores the two OPRD temporallyCALL SUB1 ;A*BADD WORD PTR Y,AXADC BYTE PTR[Y+2],0 ;A*B*2RETSTAR ENDPSUB1 PROCMOV AL,ZMOV AH,Z+1MUL AHADD WORD PTR Y,AX ;Y stores the resultADC BYTE PTR[Y+2],0 ;Y+2 stores the signal flagRETSUB1 ENDPCOD ENDSEND STAR三、实验文档中的要求(1)用D 命令观察数据区在内存中的具体内容,记录单元A 和B 的具体地址.(图一:反汇编结果以及数据区具体内容)由图一,可知A的地址为:141CH:0000H;B的地址为:141CH:0001H。
(2)用U 命令对目标代码反汇编,观察反汇编后的结果.注意发现源程序的起始位置, 并记录这个起始地址.由图一,可知:DATA段段基址:141CHA的偏移地址:0000HB的偏移地址:0001HY的偏移地址:0002HZ的偏移地址:0005HSTACK段段基址:141DHCODE段段基址:1424H第一条指令的偏移地址:0000H子程序SUB1入口的偏移地址:003FH(3)用T 命令作单步跟踪调试.比较每条指令执行后的结果和原来的理解是否一致.得出程序运行的结果:它们是写在什么单元,具体内容是什么; 并判断结果是否正确.现仅将关键步骤的单步调试结果列出,配合r命令查看结果。
微机原理软件实验

微机原理软件实验
微机原理软件实验是针对学生对微机原理的相关软件进行实践实验,增强学生的实践技能,提高学生对微机原理知识的真实理解和实际应用能力。
通过本次实验,学生能够掌握计算机硬件平台和软件操作方法的基本知识,以及计算机基础知识的核心内容。
在微机原理软件实验中,常见的软件有Keil Uvision, Proteus,Code Composer 等。
这些软件针对微机原理不同的实验内容提供了不同的应用方案。
例如,Keil Uvision常用于单片机程序编写和模拟操作,Proteus则用于硬件电路图和原理图的绘制及电路仿真等工作。
因此,学生应该了解每个软件在实验中的应用方法和操作步骤。
除了软件的使用方法,实验中还需要学生掌握计算机基础知识。
例如,学生需要了解计算机的基本组成部分和功能模块,如中央处理器、存储器、输入输出设备等。
此外,学生还需要了解与微机原理相关的数字电路、存储器、总线、中断和定时器等技术知识。
随着计算机的普及,微机原理软件实验已成为了计算机专业学生必备的课程之一。
而在微机原理软件实验过程中,学生不仅可以提高自己的实践能力,还能够了解和理解计算机的基本原理和工作过程。
这对于计算机专业学生而言,无疑是一项非常有价值的课程。
总的来说,微机原理软件实验是计算机专业学生必不可少的一课。
通过此课程,学生不仅可以掌握计算机基础知识和相关技术,还能够提高自己的实践能力和应用能力。
因此,学生应该趁早掌握微机原理软件实验的相关知识和技术,尽快提升自己的实践技能和应用能力。
微机原理与系统软件实验指导书

微机原理及接口技术实验指导书2010年9月信息学院实验中心微机实验室第一章 80X86微机原理及其程序设计(软件部分)实验一软件程序设计(1.熟悉PC机的使用和调试汇编程序的方法2.简单程序设计)一.实验目的:1.掌握汇编程序由编辑、编译、链接到调试的全过程。
2.通过汇编调试工具加深对机器指令执行过程的了解。
3.利用汇编调试工具加深对机器指令和伪指令的了解二.实验要求:1.了解 PC 机的系统类型和基本配置, 熟悉 PC 机 DOS和 WINDOWS下的基本操作。
2.掌握使用 UltraEdit 等编辑器对汇编语言源程序 (存储后扩展名为.ASM)的编辑操作。
3.学会用宏汇编程序 MASM (或TASM)对.ASM文件进行编译(编译后扩展名为.obj)。
4.使用链接程序LINK(或TLINK)对.OBJ 文件链接生成 .EXE 文件。
5.学会用汇编调试工具软件TD(或DEBUG)对.EXE文件进行调试进一步深对机器指令的了解、执行程序、检查运行结果的方法。
6.简单程序是构成复杂程序的基础。
简单程序又称顺序程序,顾名思意,就是为完成一简单的目的,采用一串指令序列,按顺序逐条执行。
在简单程序执行过程中,每条指令只执行一次,同时由于没有转移,一般不考虑对标志的影响。
象所有汇编程序设计一样,编程前,应考虑如何分配 CPU 中的寄存器和内存中单元等,要考虑到指令本身的特点和要求分配寄存器,例如,如果希望使用乘法指令进行乘法,根据指令的要求,必须要使用 AL 或 AX 作为被乘数,在这种情况下,AL或AX 就必须考虑为存放被乘数,当然,乘积应该是放在AX或DX:AX 中。
1.掌握汇编程序的基本结构及设计方法,包括:A 汇编语言源程序结构B 基于汇编级的解题算法C 寄存器和存储器的内容分配D 简单汇编程序的设计E 返回系统的方法2.掌握对自编程序的调试及出错修改的方法,包括:A 汇编程序的编辑、编译、链接及调试B 在调试程序过程中发现语法错误的处理方法C 在调试程序过程中如何发现逻辑错误及处理方法3.利用调试工具软件对课堂中讲授的机器指令、伪指令、操作符、运算符等内容加深了解三.实验仪器:PC 机一台四.实验内容:汇编程序的编程环境有以下二种方式:1. Dos窗口下命令行方式2. UltraEdit方式其中第一种Dos方式,是指进入Dos窗口模式编辑源文件,用命令行方式直接调用Tasm,Masm等编译工具进行程序的编译、链接、调试,而后两种工作方式都是在Windows下进行源文件的编辑,而编译和链接仍然是通过调用Tasm,Masm等编译工具完成相应工作。
推荐-北邮—微原软件实验报告 精品

微机原理软件实验报告学院:信息与通信工程学院班级:班内序号:姓名:学号:实验二分支,循环程序设计一.实验目的:1.开始独立进行汇编语言程序设计;2.掌握基本分支,循环程序设计;3.掌握最简单的DOS 功能调用.二.实验内容:1.安排一个数据区(数据段),内存有若干个正数,负数和零.每类数的个数都不超过9.2.编写一个程序统计数据区中正数,负数和零的个数.3.将统计结果在屏幕上显示.三.预习题:1.十进制数0 -- 9 所对应的ASCII 码是什么? 如何将十进制数0 -- 9 在屏幕上显示出来?答:0—9对应的ASCII 码是30H—39H;在屏幕上显示0—9,需要将对应字符的ASCII 码赋给DL,并进行DOS的2号功能调用,0—9的ASCII 码正是其本身的数值加上30H。
2.如何检验一个数为正,为负或为零? 你能举出多少种不同的方法?答:①用CMP命令和0比较,如果ZF为1,则该数为零;再用该数和8000H相与,取出符号位判断,可区分正负;②用CMP命令和0比较,结果不小于0时用JGE命令进行跳转,否则为负数;用JGE 命令跳转后,如果为0再用JZ命令跳转,否则为正数。
四.选作题:统计出正奇数,正偶数,负奇数,负偶数以及零的个数.五.实验过程1.流程图2.源代码DATA SEGMENTNUM DW 0,0,1,2,3,4,5,101,-6,-7,-8,-8,-9 ;有2个0,6 个正数,5 个负数N DW ($-NUM)/2 ;该组数据的个数Z DB 0 ;0 的个数P DB 0 ;正数的个数PO DB 0 ;正奇数的个数PE DB 0;正偶数的个数M DB 0 ;负数的个数MO DB 0;负奇数的个数ME DB 0 ;负偶数的个数STR0 DB 'number of zeros : $' ;STR0-4为用于显示的字符串STR1 DB 0DH, 0AH, 'number of positive numbers : $'STR2 DB 0DH, 0AH, 'number of negative numbers : $'STR3 DB 0DH, 0AH, ' odd : $'STR4 DB ' even : $'DATA ENDSSTACK SEGMENT STACKDW 100 DUP(?)STACK ENDSCODE SEGMENTASSUME DS:DATA, SS:STACK, CS:CODESTART: MOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AX ;初始化DS、SSLEA BX, NUM ;将NUM 中第一个数字的地址送入BXMOV CX, N ;将数据个数送入CXAGAIN: MOV AX, [BX] ;取出NUM 中的第一个数字CMP AX, 0 ;和0比较JGE PLU ;大于等于0时转PLUINC M ;负数的个数加1TEST AX, 1 ;检测该数据最低位是否为1,即是否为负奇数JNZ MINODD ;ZF为0时转MINODD,该数为负奇数INC ME ;负偶数个数加1JMP NEXTMINODD: INC MO ;负奇数个数加1JMP NEXTPLU: JZ ZER ;等于0时转ZERINC P ;正数个数加1TEST AX, 1 ;检测该数据最低位是否为1,即是否为正奇数JNZ PLUODD ;ZF为0时转PLUODD,该数为正奇数INC PE ;正偶数个数加1JMP NEXTPLUODD: INC PO ;正奇数个数加1JMP NEXTZER: INC Z ;零的个数加1NEXT: ADD BX,2 ;偏移地址加2,指向下一数字LOOP AGAIN ;CX自减,CX≠0时继续循环DISPLAY: ;在屏幕上显示统计结果MOV AH, 09H ;9号功能调用,显示字符串MOV DX, OFFSET STR0 ;将字符串的首地址的偏移地址送到DX,DS已;是其段基址INT 21HMOV AH, 02H ;2号功能调用,显示单个字符MOV DL, Z ;将零的个数送到DLADD DL, 30H ;0—9数字本身加上30H即为其ASCII 码INT 21HMOV AH, 09H ;正数部分统计结果显示,原理同上MOV DX, OFFSET STR1INT 21HMOV AH, 02HMOV DL, PADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR3INT 21HMOV AH, 02HMOV DL, POADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR4INT 21HMOV AH, 02HMOV DL, PEADD DL, 30HINT 21HMOV AH, 09H ;负数部分统计结果显示,原理同上MOV DX, OFFSET STR2INT 21HMOV AH, 02HMOV DL, MADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR3INT 21HMOV AH, 02HMOV DL, MOADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR4INT 21HMOV AH, 02HMOV DL, MEADD DL, 30HINT 21HMOV AX, 4C00H ;返回DOSINT 21HCODE ENDSEND START3.运行结果数据为:0,0,1,2,3,4,5,101,-6,-7,-8,-8,-9运行结果:zero表示零的个数,为2;positive number表示正数的个数,为6,其中奇数odd为4个,偶数even为2个;negative number表示负数的个数,为5,其中奇数odd为2个,偶数even 为3个。
微机原理软件实验指导书

实验一基本程序编程和程序调试一、实验目的1、掌握数码转换等基本程序设计的技巧和方法。
2、熟悉DEBUG命令。
3、学会和掌握用DEBUG调试程序的方法。
二、实验设备PC机一台,装有DOS基本系统三、实验内容及步骤用DEBUG建立、汇编和运行调试程序的操作。
DEBUG是DOS系统支持的用于汇编语言源程序调试的系统软件。
它共有19条命令完成相应的功能,命令及其格式可参阅附录一。
(一)DEBUG操作练习1)实验调试程序程序的功能是从3500H内存单元开始建立0-15共16个数据。
程序如下:地址(H)机器码(H)助记符2000 BF0035 MOV DI,35002003 B91000 MOV CX,00102006 B80000 MOV AX,00002009 9E SAHF200A 8805 MOV BYTE[DI],AL200C 47 INC DI200D 40 INC AX200E 27 DAA200F E2F9 LOOP 200A2011 F4 HLT2)实验步骤:(1)输入与修改①启动DOS,在DOS提示符下输入D E B U G后回车,屏幕立即显示DEBUG提示符“—”,表明已进入DEBUG状态,可以执行DEBUG的各种命令。
②用DEBUG中的汇编命令“A 地址”将程序建立在内存单元中。
在提示符“—”下键入:“A 2000 ↵”此时显示器上将会显示程序的段地址CS和偏移地址IP,你就可以输入以上的程序了。
即显示169C :2000 键入MOV DI,3500169C:2003 MOV CX,0010169C:2011 HLT:::③用反汇编命令“U 地址”检查程序在提示符“—”下,键入“U 2000↵”,将从2000内存单元开始的内容反汇编,屏幕上显示169C:2000 BF0035 MOV DI,3500169C:2003 B91000 MOV CX,0010169C:2006 B8000 MOV AX,0000::::::169C:2011 F4 HLT当发现程序有错时,可用汇编命令“A 地址”进行修改,如要修改200A单元中的指令,则键入“A 200A↵”,屏幕显示169C:200A ,然后再键入MOV BYTE[DI],AL↵,就把错误的程序改正了。
微机原理软件实验报告

七、实验总结、建议要求、心得体会
之前小学期中已经用汇编语言编写过比较大型的程序,但是是在编译器中运行,比较容易查错,而且显示、输入等功能都是调用硬件实现,因此很多经验不能照搬,遇到了很多问题,我发现汇编语言对程序内部存储器等的利用虽然比C语言麻烦,但是都是真正可以控制、可以调用显示的,可以直接DEBUG看到内存空间,非常直观。由于在程序中存在很多条件跳转语句,所以需要在最初设计时就考虑好各种分支情况,在画好程序流程图之后,程序的编写工作变得简单了很多,简化了编写代码过程中的思考过程。
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
INPUT PROC NEAR;输入子函数
MOV AH,01H
INT 21H
ret
input endp
test1proc near;测试输入是否为数字子函数
cmp al,'0'
3.将统计结果在屏幕上显示。
4.(扩展题)统计出正奇数、正偶数,负奇数、负偶数以及零的个数。
三、画出程序流程图
四、给出源程序(要求加注释)
data segment
buff dw 1, 2, 0, 0 ,-1;数据段,初始化数据
count equ $-buff
plus db ?;定义三种数的存储位置
zero db ?
1.十进制数 0 -- 9 所对应的 ASCII 码是什么? 如何将十进制数 0 -9 在屏幕上显示出来?
答:对应的ASCII码是30H~39H,把0-9加上30H即可得到对应的ASCII,送给DL,再执行INT 21H即可显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一将键盘输入的小写字母转为大写字母一.实验目的了解小写字母和大写字母在计算机内的表示方法,并学习如何转换。
二.实验内容接收键盘字符(以Ctrl+C结束),并将其中的小写字母转换为大写字母,然后进行显示。
三.参考程序清单CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDA TA SEGMENTBUF DB 100 DUP (?)DA TA ENDSSTACK1 SEGMENTSTA DB 50 DUP(?)TOP EQU LENGTH STASTACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DA TAMOV DS,AXMOV ES,AXMOV AX,STACK1MOV SS,AXMOV SP,TOPMOV BX,OFFSET BUFKKK: MOV SI,0GGG: MOV AH,01H第1页共2页INT 21HCMP AL,03HJZ PPPCMP AL,0DHJZ BBBCMP AL,61HJB TTTCMP AL,7AHJA TTTSUB A L,20HTTT: MOV [BX+SI],ALINC SIJMP GGGBBB: MOV [BX+SI],ALMOV AL,0AHMOV [BX+SI+1],ALMOV AL,‘$’MOV [BX+SI+2],ALMOV AH,09HMOV DX,BXINT 21HJMP KKKPPP: MOV AX,4C00HINT 21HCODE ENDSEND START实验二两个多位十进制数相加的实验一.实验目的1.学习数据传送和算术运算指令的用法。
2.熟悉在PC机上建立、汇编、连接、调试和运行8088/8086汇编语言程序的过程。
二.实验内容将两个多位十进制数相加。
要求被加数均以ASCII码的形式各自顺序存放在以DA TA1和DA TA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三.参考程序清单CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTDATA1 DB 33H,39H,31H,37H,34HDATA2 DB 36H,35H,30H,38H,32HDATA ENDSSTACK1 SEGMENTSTA DB 80H DUP(?)TOP EQU LENGTH STASTACK1 ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK1,DS:DATA START:MOV AX,DA TAMOV DS,AXMOV AX,STACK1MOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DA TA2MOV BX,05CALL DISPLCRLFMOV SI,OFFSET DA TA1MOV BX,05CALL DISPLCRLFMOV DI,OFFSET DA TA2CALL ADDAMOV SI,OFFSET DA TA1MOV BX,05CALL DISPLCRLFMOV AX,4C00HINT 21HDISPL PROC NEARDS1:MOV AH,02HMOV DL,[BX+SI-1]INT 21HDEC BXJNZ DS1RETDISPL ENDPADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05AD1:SUB BYTE PTR [BX+SI-1],30HSUB BYTE PTR [BX+DI-1],30HDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05CLCAD2:MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALINC SIINC DILOOP AD2MOV SI,DXMOV DI,BPMOV BX,05AD3:ADD BYTE PTR [BX+SI-1],30HADD BYTE PTR [BX+DI-1],30HDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START实验三两个十进制数相乘的实验一.实验目的1.掌握乘法和循环指令的用法。
2.熟悉在PC机上建立、汇编、连接、调试和运行,8088/8086汇编语言程序的过程。
二.实验内容实现十进制数的乘法。
被乘数和乘数均以ASCII码的形式存放在内存中,乘积在屏幕上显示出来。
三.参考程序清单DA TA SEGMENTDA TA1 DB 32H,39H,30H,35H,34HDA TA2 DB 33HRESULT DB 6 DUP(?)DA TA ENDSSTACK1 SEGMENTSTA DB 80H DUP(?)TOP EQU LENGTH STASTACK1 ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK1,DS:DATA, ES: DA TA START:MOV AX,DA TAMOV DS,AXMOV AX,STACK1MOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA2MOV BL,[SI]AND BL, 00001111BMOV SI,,OFFSET DATA1MOV DI,,OFFSET RESULTMOV CX,05LOOP1: MOV AL,,[SI]AND AL,00001111BINC SIMUL BLAAMADD AL,[DI]AAAMOV [DI],ALINC DIMOV [DI],AHLOOP LOOP1MOV CX,06HMOV SI,OFFSET RESULT+5 DISPL: MOV AH,02HMOV DL,[SI]ADD DL,30HINT 21HDEC SILOOP DISPLMOV AX,4C00HINT 21HCODE ENDSEND START实验四二进制数转换成ASCII码的实验一.实验目的3.学习将二进制数转换成ASCII码表示的字符串(十进制)的算法及DOS 的高级功能调用。
4.熟悉在PC机上建立、汇编、连接、调试和运行8088/8086汇编语言程序的过程。
四.实验内容将一个字长的二进制数转换成以ASCII码表示的字符串(十进制)。
二进制数放在BINASC中,其转换结果放在ASCBCD中并在CRT上显示。
五.参考程序清单DATA SEGMENTBINNUM DW 4FFFHASCBCD DB 5 DUP(?)DATA ENDSSTACK1 SEGMENTDB 200 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK1,DS:DATA,ES:DA TA BINASC:MOV AX,DA TAMOV DS,AXMOV ES,AXMOV CX,5XOR DX,DXMOV AX,BINNUMMOV BX,10MOV DI,OFFSET ASCBCDBINASC1:DIV BXADD DL,30HMOV [DI],DLINC DIAND AX,AXJZ STOPMOV DL,0LOOP BINASC1STOP:MOV CX,6LOOP1:MOV AH,2MOV DL,[DI]INT 21HDEC DILOOP LOOP1MOV AH,4CHINT 21HCODE ENDSEND BINASC(仅此一页)实验五将一位十六进制数转换成对应的ASCII码(只考虑大写)1. 实验目的熟悉8086/8088汇编语言程序设计的编辑、汇编、连接、调试的步骤;掌握十六进制数换换为ASCII码的基本思想。
2. 参考程序如下:DA TA SEGMENTN DB 8DA TA ENDSSTACK1 SEGMENT PARA STACK ‘STACK’DB 200 DUP(?)TOP LABEL BYTESTACK1 ENDSCODE SEGMENTASSUME CD:CODE,DS:DA TA,SS:STACK1 START:MOV AX,DA TAMOV DS,AXMOV AX,STACK1MOV SS,AXMOV SP,OFFSET TOPMOV AL,NCMP AL,09JBE D1CMP AL,15JA G1ADD AL,07D1:ADD AL,30HDONE: MOV AH,02HMOV DL,ALINT 21HMOV AH,4CHINT 21HG1:MOV AL,0FFHJMP SHORT DONECODE ENDSEND START (仅此一页)。