




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机系统及应用实验指导书东华大学信息科学与技术学院电气电子工程系2017年9月实验一 基本程序编程和程序调试一、 实验目的1、 掌握数码转换等基本程序设计的技巧和方法。2、 熟悉DEBUG命令。3、 学会和掌握用DEBUG调试程序的方法。二、 实验设备PC机一台,装有DOS基本系统三、 实验内容及步骤用DEBUG建立、汇编和运行调试程序的操作。DEBUG是DOS系统支持的用于汇编语言源程序调试的系统软件。它共有19条命令完成相应的功能,命令及其格式可参阅附录一。(一) DEBUG操作练习* 1)实验调试程序程序的功能是从3500H内存单元开始建立0-15共16个数据。程序如下:地址(H)机器码(H)助记符2000BF0035MOVDI, 35002003B91000MOV CX, 00102006B80000MOVAX, 000020099ESAHF200A8805MOV BYTEDI,AL200C47INC DI200D40INC AX200E27DAA200FE2F9LOOP 200A2011F4HLT 2)实验步骤:(1)输入与修改 启动DOS,在DOS提示符下输入D E B U G后回车,屏幕立即显示DEBUG提示符“”,表明已进入DEBUG状态,可以执行DEBUG的各种命令。 用DEBUG中的汇编命令 “A 地址”将程序建立在内存单元中。 在提示符“”下键入 : “A 2000 ” 此时显示器上将会显示程序的段地址CS和偏移地址IP,你就可以输入以上的程序了。即显示 169C :2000 键入 MOV DI, 3500 169C: 2003 MOV CX, 0010169C: 2011 HLT : : : 用反汇编命令 “U 地址”检查程序在提示符“”下,键入 “U 2000”,将从2000内存单元开始的内容反汇编,屏幕上显示 169C:2000 BF0035 MOV DI, 3500 169C:2003 B91000 MOV CX, 0010 169C:2006 B8000 MOV AX, 0000 : : : : : : 169C:2011 F4 HLT当发现程序有错时,可用汇编命令“A 地址”进行修改,如要修改200A单元中的指令, 则键入“A 200A” ,屏幕显示 169C:200A ,然后再键入MOV BYTEDI, AL,就把错误的程序改正了。(2)显示和修改数据用修改内存单元命令 “E 地址” 在指定内存单元中存入一个数。如要在3500为首址的单元中存入14H和25H两个数据,可在提示符“”下,键入:“E 3500”显示 169C:3500 键入14,按空格键 25,按空格键用显示内存命令 “D 地址” 检查指定单元的内容在提示符“”下,键入 “D3500”显示 1489:3500 14 25 48 02 1489:3510 * * * * : : : : 1489:3570 * * * * 若某单元内容有错则可用命令: “E 地址 ”进行修正。用显示和修改命令 “R ”或“R 寄存器名”显示寄存器或修改其内容在提示符“”下,键入 “R”显示 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE DS=169C ES=169C SS=169C CS=169C IP=2000要修改IP的内容时,键入命令 “R IP”后, 显示 IP 2000,在2000之后键入新内容。(3)程序运行程序的运行方式有单步运行、断点运行和连续运行几种方式。单步运行 输入DEBUG跟踪命令“T”或“T=地址”或“T=地址 指定次数”,可从指定地址处运行该单元中的一条指令,以后只要连续输入“T”命令就能连续执行一条一条指令。如在提示符“”下,键入 “T=2000 ”显示 :AX=0000 BX=0000 CX=001D DX-0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=169C ES=169C SS=169C CS=169C IP=2000 NV169C:2003 B91000 MOV CX, 0010断点运行用运行命令 “G=地址 地址断点 地址断点”执行指定地址的程序在提示符“”下,键入 “G=2000 2011 ”显示 169C:2011 F4 HLT 表示这段程序已经执行完毕。连续运行输入DEBUG命令“G=地址”,执行指定地址的程序 (WINDOWS系统下,不建议使用此方式,改用断点运行,把最后一条指令后的地址设为断点,如G=2000 2011)(4)用显示内存命令检查运行结果在提示符“”下,键入命令 “D 地址”,根据其中的内容判断程序运行是否正确。如检查以上程序执行后的结果,在提示符“”下,键入“ D 3500”,可显示169C:3500 00 01 02 03 04 15169C:3510 (二)数码转换程序及其调试*1、 将ASCII码表示的十进制数转换为二进制数1)程序设计的算法及其程序十进制数据可表示为:DI代表十进制数1,2,3,9,0 上式可转换为: 由式(2)可归纳十进制数转换为二进制数的方法:从十进制的最高位Dn开始乘10加次位的操作,将结果再乘10再加下一次位,如此重复,则可求出二进制数结果来。这里我们规定:被转换的ASCII码十进制数存放在3500H3504H单位中。而转换结果存放在3510H3511H单元中。2)实验步骤(1)输入程序并检查无误。(2)在3500H3504H单元存入十进制数字的ASCII码,即E3500H, 如十进制数12345则输入31 32 33 34 35H。(3)G=2000 201E,运行程序(4)用D3510来查看结果,并记录。(5)反复试几个不同的数(必须有一个是学号后4位数),并考查程序的正确性。地址(H) 助记符 注释2000 MOV SI,3500 ;源地址2003 MOV DI,3510 ;结果地址2006 MOV BX,000A ;乘数 102009 MOV CX,0004 ;计数200C MOV AH,00 ;AH 清零200E MOV AL,SI ;取被转换数2010 SUB AL,30 ;ASCII码变十进制数2012 IMUL BX ;高位(AX)*(BX)送AX2014 ADD AL,SI+01 ;取下一位1017 SUB AL,30 ;ASCII码减30变十进制数2019 INC SI ;源地址指针+1201A LOOP 2012 ;CX-1,若CX不等于零则继续201C MOV DI,AX ;若CX不等于零则存结果201E INT 3 2 将十进制数的ASCII码转换为BCD码1)程序流程和程序设从键盘输入的五位十进制数的ASCII码已存放在3500H起始的内存单元内,把它转换成BCD码后,再按位分别存入350AH起始的内存单元内。若输入的不是十进制数的ASCII码,则对应存放结果的内容为“FF”。一字节ASCII码取其低四位即变为BCD码,考程序如图1-2所示。2)实验步骤(1) 输入程序并检查无误。(2) 在3500H3504H单元中存入五位十进制数的ASCII码,即E3500,如输入31,32,33,34,35。(3) G=2000 201C,运行以上程序。(4) D350A,显示结果为(5) 反复试几个不同的数(必须有一个是学号后4位数),考查程序的正确性。地址(H) 助记符 注释2000 MOV CX,0005;循环计数器赋初值2003 MOV DI,3500;ASCII码首址2006 MOV BL,FF; 错误标志送BL2008 MOV AL,DI;送ASCII码至AL200A CMP AL,3A; 比较AL与3AH200C JNB 2014; 不低于3A则转2014200E SUB AL,30; 低于3A则取ASCII码的低四位2010 JB 2014; 低于30则转20142012 MOV BL,AL; 否则AL内容送BL,取代FF2014 MOV AL,BL; 结果或错误标志送AL2016 MOV DI+0A,AL2019 INC DI201A LOOP 2006201C INT 3图1-23 将十六位二进制数转换为ASCII码表示的十进制数1)程序及其流程十六位二进制数的值域为065535,最大可转换为五位十进制数。算法:五位十进制数可表示为: Di:表示十进制数09。 因此,将十六位二进制数转换为五位ASCII码表示表示的十进制数,就是求D1D4,并将它化为ASCII码。程序流程图如图1-3所示,设源数据存于35003501H单元中,结果数存于35103514H单元中。2)实验步骤(1) 输入程序并检查无误。(2) 用E命令在35003501H单元中存放一个16位二进制数,运行程序并用D命令检查结果。(3) 反复试几组数(必须有一个是转换成为二进制数的学号后4位数),并运行程序、观察结果。地址(H) 助记符 注释2000 MOV DX,3500;取二进制数2004 MOV SI,3515; 目标首址在35102007 DEC SI2008 MOV AX,DX200A MOV DX,0000200D MOV CX,000A 2010 DIV CX; ; 除102012 XCHG AX,DX2014 ADD AL,302016 MOV SI,AL2018 CMP DX,0000201B JNE 2007201D CMP SI,3510 ; 填余下高位为02021 JZ 202A; 2023 DEC SI2024 MOV AL,302026 MOV SI,AL2028 JMP 201D202A INT 3图1-34、 十六进制数转换为ASCII码1) 程序及其流程经过CPU处理后的十六进制数存放在起始地址为3500H的内存单元中,把它们转换成ASCII码之后,再分别存入起始地址为350AH的内存单元中。 从表2-1中可知,十六进制数加30H即可得到0H9H的ASCII码,而要得到AHFH的ASCII码,则需再加7H。参考程序如图1-4所示。2)实验步骤(1) 输入程序并检查无误。(2) 用E命令在35003501H单元中存入四位十六进制数。(3) G=2000 2021,运行以上程序用D命令显示结果。(4) 反复试几组数(必须有一个是转换成为二进制数的学号后4位数),考查程序的正确性。地址(H) 助记符 注释2000 MOV CX,00042003 MOV DI,35002006 MOV DX,DI2008 MOV AX,DX200A AND AX,000F ;取低四位值200D CMP AL,0A; ; 判是否“0”-“9”200F JB 2013 ; 是“0”-“9”转20132011 ADD AL,07; 是“A”-“F”,加72013 ADD AL,30; 转换为ASCII码2015 MOV DI+0A,AL2018 INC DI2019 PUSH CX ;保护循环计数器内容201A MOV CL,04; 移位次数送CL201C SHR DX,CL201E POP CX201F LOOP 20082021 INT 3图1-44 BCD码转换为二进制数 1) 程序及其流程设四个二位十进制数的BCD码存放在起始地址为3500H,的单元中,转换出的二进制数码存入起始地址为3510H的内存单元中,参考程序如图1-5所示。地址(H) 助记符 注释2000 MOV CX,00042003 MOV DI,35002006 MOV AL,DI2008 ADD AL,AL ;乘2200A MOV BL,AL200C ADD AL,AL ;乘2200E ADD AL,AL ;乘22010 ADD AL,BL ;乘102012 INC DI2013 MOV AH,002015 ADD AL,DI; BCD码十位与个位加2017 MOV DI+0F,AX;存结果 图1-5201A INC DI201B LOOP 2006201D INT 32)实验步骤(1) 输入程序并检查无误。(2) 在35003507单元中存入四个十进制数(12,34,56,78)的BCD码,即E3500 输入01,02,03,04,05,06,07,08。(3) G=2000 201D,运行以上程序。(4) D3510,显示结果为3510 0C 00 22 00 38 00 4E 00(5) 反复试几组数反复试几组数(必须有一个是学号后8位数),考查程序的正确性。四、思考题1、 图1-1程序,将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,最大又可为多少?为什么?2、 将一个十六位二进制数转换为ASCII码十进制数时,如何确定D1的值?3、 在十六进制数转换为ASCII码时,存转换结果后,为什么要把DX向右移四次?4、 自编ASCII码十六进制、十进制小数二进制、二进制BCD码的程序,并调试运行。实验二 程序设计和PC机上程序调试操作实验一、实验目的掌握常用程序设计的基本技巧和方法。学会和熟悉使用MASM汇编程序和LINK连接程序。掌握使用PC机上编程和调试程序的方法。二、实验设备PC机一台,装有DOS基本系统和MASM宏汇编软件三、实验内容及步骤(一)按要求编写程序并在DEBUG下建立、汇编和调试程序、 四字节二进制数的加法1)程序设计要求两个字的被加数存放于3500H3503H单元,加数存于3504H3507H单元(存放格式为高位存高地址单元,低位存低地址单元),两数之和(如不超过四字节)存放于3508H350BH单元。2)实验步骤()编写程序。()在DEBUG下输入程序并检查(程序可存放于2000H8000H单元)。()在3500H3507H单元中存入被加数014527和加数146758。()运行程序后,检查3508H350BH单元中内容。()反复选择几组被加数和加数,检查结果,验证程序正确性。2、数据块的搬移1)程序设计思想和要求将内存中一数据区中数据(源数据块)传送到另一数据区(目的数据块)。源数据块和目的数据块区在内存中的位置有两种情况:两区重叠和不重叠,如下图所示。对于两个数据块不重叠的情况,数据的传送可从数据块的首址开始,也可从数据块的末址开始;对于两个数据块重叠的情况,则要加以分析,否则重叠部分会因搬移而遭破坏。处理方法可以是:在源数据块首址目的数据块首址时,从数据块的首址开始传送,在数据块首址目的数据块首址时,从数据块的末址开始传送。若源数据块首址存放于SI 中,目的数据块首址存放于DI 中,块字节数存放于CX中。要求设计的程序能够实现不同情况下的数据块传送。源数源据块数据目的块数据目的数块据块)实验步骤()编写程序。()在DEBUG下键入程序并检查(程序可存放于2000H8000H单元)。()确定源数据块和目的数据块区不重叠时的首址,确定数据块个数为16个。并在源数据区送入任意个数据。()运行程序后,检查目的数据区的内容。()确定源数据块和目的数据块区重叠时, 源区首址目的区首址时的首址, 以及数据块个数为16个,并在源数据区送入任意个数据。运行程序后,检查目的数据区的内容。()确定源数据块和目的数据块区重叠时, 源区首址目的区首址时的首址, 以及数据块个数为16个,并在源数据区送入任意个数据。运行程序后,检查目的数据区的内容。*3、无序数据块的递增排序)程序设计思想和要求在首址为3000H 的数据区中存放着一组无符号数, 数据的长度存于3500H单元内,要求用冒泡法对该区中的数据按递增次序排列。冒泡法的基本思想是从最后一个数(或从第一个数)开始,依次把相邻两个数比较,即第个数与第个数比较,若大则交换,否则不交换,直到个数都比较完为止。此时,其中最小数排在最前列。然后将剩下的-1个数再按前述方法进行,找到N-1个数中最小的数。以后重复进行,直到全部按序排列。)实验步骤()编写程序。()在DEBUG下键入程序并检查(程序可存放于2000H8000H单元,只要不与数据区重叠即可)。()确定数据个数并输入3500H单元中,在首址为3500H的数据区中存入任意无符号数。()运行程序并检查运行结果。()反复修改数据个数和数据区中的数,运行程序、观察结果,验证程序的正确性。4、求数的平方根)程序设计思想和要求减奇数法是一种求取近似平方根和平方根的整数部分的方法。有公式:nS(2K-1)=N2=1若要求数S的平方根S, 则可以从S中减去奇数1、3、5直到减为零或不够减下一个奇数为止,然后统计减去的奇数个数,它就是S的近似平方根。被开方数为一个足够大的二进制数, 存于首址为4000H的单元内,它的方根存放在以4500H为首的单元内。)实验步骤()编写程序。()在DEBUG下输入程序并检查(程序可存放于2000H8000H单元,和数据存放单元不要重叠)。()在4000H为首的单元中存入一个任意大的数。()运行程序并检查运行结果。()反复修改被开方数,运行程序、观察结果,验证程序的正确性。5、思考题 如果二进制加数和被加数不限于四字节而为任意字节时,程序应作如何改动? 修改原有的无符号数的排序程序为带符号数的排序程序。 被开方数是一压缩型的BCD码十进制数时,程序应作如何修改?(二)MASM汇编程序和LINK连接程序的使用操作在DEBUG中,使用A命令建立程序,一般不能使用标号和伪指令,并不能保存汇编语言源程序,适用于简单程序。MASM宏汇编程序可以将编辑程序建立的源程序文件进行汇编,汇编后在盘上建立目标文件、列表文件和交叉参考文件。而目标文件经LINK程序连接以后成为可执行的文件,它可以在DOS下执行也可在DEBUG下调试。1、计算机钢琴程序1)实验内容根据乐曲中不同的音符是由输出不同频率的声波而产生的原理,通过设置PC机中 8253定时器不同的计数值,可由扬声器发出不同的曲调。 以下是实现PC机作为一架可弹奏的钢琴演奏预定的曲调。程序中采用了INT 21H软中断调用了DOS的常用子程序。源程序为:DATA SEGMENTMESS DB Push any key to stop!,0dH,0aH,$TABLE DW 524,588,660,698,784,880,988,1048,1176,1320,0TABLEL DB 31H,31H,32H,31H,34H,33H,3BH DB 31H,31H,32H,31H,35H,34H,3BH DB 31H,31H,38H,36H,34H,33H,32H,3BH DB 36H,36H,36H,34H,35H,34H,3BH,0AAHDATA ENDSSTACK SEGMENT PARA STACK STACKSTA DB 256 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS: CODE, DS: DATA, SS: STACK, ES: DATASTART PROC FAR DIV WORD PTR TABLE+BX PUSH DS MOV BX, AX XOR AX, AX MOV AL, 10110110B PUSH AX OUT 43H, AL MOV AX, DATA MOV AX, BX MOV DS, AX OUT 42H, AL MOV ES, AX MOV AL, AH MOV AH, 09H OUT 42H, AL LEA DX, MESS IN AL, 61H INT 21H OR AL, 03HKK: LEA SI, TABLEL OUT 61H, AL CALL DELAY IN AL, 61H AND AL, 0FCH OUT 61H, AL QQ: INC SISING: MOV AH, 06H JMP SING MOV DL, 0FFH FINISH: RET INT 21H START ENDP JNE FINISH MOV AL, SI DELAY PROC NEAR ; 延时子程序 CMP AL, 3BH PUSH CX JNE DDD PUSH AX CALL DELAY MOV AX, 500H ; 大循环次数 JMP QQ X1: MOV CX, 0FFFFH ; 小循环次数DDD: CMP AL, 0AAH X2: DEC CX JE KK JNZ X2 SUB AL, 31H DEC AX SHL AL, 01H JNZ X1 MOV BL, AL POP AX MOV AX, 0000H POP CX MOV DX, 12H RET MOV BH, 00H DELAY ENDP CODE ENDS END START2)实验步骤(1)利用EDIT 全屏幕编辑程序或TURBO PASCAL中的编辑功能或任何一款文本编辑程序输入以上程序,以文件名为 PLAYPIA.ASM存盘。(2)在DOS系统下执行子目录MASM中的执行文件MASM.EXE ,用宏汇编程序将PLAYPIA.ASM.汇编成目标文件PLAYPIA.OBJ。操作过程如下:显示 键入 C:MASM MASM MICROSOFT(R) COPYRIGHT(C)SOURCE FILENAME .ASM PLAYPIA OBJECT FILENAME PLAYPIA.OBJ SOURCE LISTINGNUL.LST PLAYPIA CROSS-REFERENCENUL.CRF WARNIING ERRORS 0SEVERE ERRORS 0如ERRORS 均为0 表示汇编正确,如不为0,则必须在编辑状态下重新修改源程序。(3)运行子目录DOS下LINK执行文件将目标文件PLAYPIA.OBJ连接成为可执行的文件PLAYPIA.EXE。操作如下:显示 键入 C: LINK MICROSOFT(R) COPYRIGHT(C) OBJECT MODULES.OBJ: PLAYPIA RUN FILEPLAYPIA.EXE LIST FILENUL.MAP PLAYPIA LIBRARIES.LIB C: (4)在DOS下直接键入由MASM宏汇编和LINK连接程序生成的可执行文件文件名PLAYPIA,运行程序观察运行结果。(6) 修改程序中延时子程序的循环次数,重新汇编、连接后运行。2、求数据块的最小值和最大值)实验内容在以BUFFER为首址的内存中存放了若干个带符号数, 其个数存放在首单元,寻找出它们最大值放到存储单元MAXVAL中, 最小值放到存储单元MINVAL中。汇编语言源程序如下: DATA SEGMENT BUFFER DB 10,22,33,-80,127,-76,0,90,-45,60,-1 MINVAL DB ? MAXVAL DB ? DATA ENDS STACK SEGMENT PARA STACK STACK STA DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK START PROC FAR PUBH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX MOV ES, AX LEA BX, BUFFER MOV CH, 0 MOV CL, BX INC BX MOV AL, BX MOV MINVAL, AL MOV MAXVAL, AL INC BX DEC CX AGAIN: MOV AL, BX CMP AL, MINVAL JE NEXT JG A1 MOV MINVAL, AL JMP NEXT A1: CMP AL, MAXVAL JL NEXT MOV MAXVAL, AL NEXT: INC BX DEC CX JNE AGAIN RETF START ENDP CODE ENDS END START)实验步骤()用编辑程序建立源程序文件,文件名自定。()用MASM宏汇编程序和LINK连接程序将源程序文件汇编生成以EXE为扩展名的执行文件。(3)用DEBUG调试程序将由上产生的EXE可执行文件送入内存,先用反汇编命令检查程序内容和首末地址,然后检查以BUFFER为首址的存储单元中数据块和MINVAL、MAXVAL单元的内容。BUFFER 地址单元的段地址和偏移地址是由系统在汇编和连接时指定的。各个不同的系统都不一样,一般来说,偏移地址为零,段地址可在反汇编程序时,根据指令MOV AX, DATA 对应机器码中DATA的值来确定。(4)在DEBUG下运行程序,检查运行结果。(5)修改源程序中BUFFER数据区的各数据,重新汇编后再运行,检查结果。*3、从无序数列中删除一个元素1)实验内容在BUFFER为首址的内存区中存放了一个无序字符串,其长度存放在第一个字节单元,在KEY单元内存放了要删除的一个字符,查找此无序字串,若找到则删除并作相应调整,若字串中无此字符则在FLAG单元内置FFH标志。其程序流程图如下。2)实验步骤()按以上框图编写程序,并任意设定字符个数和字符串。()输入汇编语言源程序,文件名自定。()用MASM和LINK程序汇编和连接生成EXE执行程序。(4)运行该程序,并检查结果。(5)修改字符串及其个数,再运行程序,验证程序的正确性。 设地址指针, 取串长度CX KEY内容AL 搜索字串 找到否? N Y CX1 串搜索 N 完否? 以要删除的数据的地址 为目的地址,下一个数 Y 据的地址为源地址,以 剩下的数据个数为传送 置 次数进行传送 FLAGE单元 返回 4、思考题 计算机钢琴程序中,INT 21 的作用是什么?指令DIV WORD PTRTABLE+BX中为什么要用操作符WORD PTR?延时子程序DELAY中为什么要把AX、CX压入栈? 在求最大和最小值的程序中,有指令MOV MINVAL,AL和MOV MAX MAXVAL,AL将第一个数存入这两个单元,可以用哪两个立即数直接存入这两个单元也可达到同样效果? 若求无符号数据块的最大和最小值,那么程序要作哪些修改? 删除一个升序或降序字符串中一个字符时,程序应如何修改可使在找不到这个字符时搜集次数减少?四、实验报告要求1对所有程序写上较详细的注释。2整理出实验中数据和运行结果。3总结DEBUG程序、MASM宏汇编、LINK连接程序的调试程序的方法和经验。4根据思考题写出答案和运行结果。实验三 DOS系统功能调用及模块化程序设计一、实验目的2、 熟悉DOS系统中基本功能子程序的作用及其调用方法。3、 结合DOS系统中键盘和显示功能子程序的调用和汇编语言源程序结构设计有关程序。4、 掌握复杂程序的设计思想模块化程序设计的方法。二、实验设备PC机一台,装有DOS基本系统和MASM宏汇编软件。三、实验内容及步骤(一)DOS键盘、显示基本功能子程序调用DOS提供了许多系统功能子程序可由程序设计者调用,其中最基本的是键盘和显示操作功能的调用,具体调用的方法可参阅教科书。*1、显示缓冲区的字符串 1)实验程序:DSEGSEGMENTSTRINGDBWelcome to DONG HUA University!,0dH,0aH,$DSEGENDSSTACK SEGMENTPARA STACK STACKDB256DUP (?)STACKENDSCSEGSEGMENTMAINPROCFARASSUME CS: CSEG, DS: DSEG SS: STACKSTART:PUSHDSMOVAX,0PUSHAXMOVAH,9MOVDX,SEG STRINGMOVDS, DXMOVDX,OFFSET STRINGINT21HRETMAINENDPCSEGENDSENDSTART2) 实验步骤: (1)建立源程序文件。(2)用MASM宏汇编程序和LINK连接程序生成执行程序。(3)运行执行程序,输入不同字母,观察结果。2、键盘输入小写字母,显示器显示大写字母 1)实验程序: CSEGSEGMENTMAIN PROCFAR ASSUMECS:CSEGSTART:PUSHDSMOV AX, 0PUSH AXBEGIN:MOVAH,1INT21HCMPAL,aJBSTOPCMPAL,zJASTOPSUBAL,20HMOVDL,ALMOVAH,2INT21HJMP BEGINSTOP:RETMAINENDPCSEGENDSENDSTART 2) 实验步骤: (1)建立源程序文件。(2)用MASM宏汇编程序和LINK连接程序生成执行程序。(3)运行执行程序,输入不同字母,观察结果。3、从键盘输入一个二位十进制的月份数(01-12),显示相应月份的英文缩写名1)程序及其结构 程序采用子程序的结构形式,子程序有:将输入的二位月份数转换为二进制数的子程序;从字符表中查找相应的英文缩写的子程序;将月份的英文字母显示在屏幕上的子程序。程序如下:DATASGSEGMENTPARADATATHREEDB3MONINDB3,4 DUP(?)ALFMONDB ?,$MONTABDB JAN,FEB,MAR,APR,MAY,JUNDB JUL,A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 事业单位工考课件
- 工艺产品技术合作开发协议书6篇
- 结肠癌根治术基础护理
- 2025年江西省成人高等学校招生考试地理+历史复习题及答案
- 《琵琶行》课件教学课件
- 质检员年终总结格式
- 2025房屋租赁合同协议范例
- 公司收购风控法务课件
- 装修项目年终总结
- 环境设计考察汇报
- 桥式起重机主要结构与原理讲解
- 【化学校本课程】《让化学走进生活》校本课程
- 新浪微博研究报告
- 高等数学(上册)
- 平面镜成像-说课
- 通信工程安全员考试题库案例题汇总
- 频谱监测及瞬态信号捕获技术课件
- 宣城万里纸业有限公司年产15万吨高强度瓦楞包装用纸及5万吨纱管纸技改项目环境影响报告书
- 贵州某二级公路施工组织设计KK
- 推广普通话课件
- GB/T 16714-2007连续式粮食干燥机
评论
0/150
提交评论