收藏 分享(赏)

微机原理与接口技术(楼顺天第二版)第四章习题解答.doc

上传人:精品资料 文档编号:10517573 上传时间:2019-11-24 格式:DOC 页数:48 大小:846.50KB
下载 相关 举报
微机原理与接口技术(楼顺天第二版)第四章习题解答.doc_第1页
第1页 / 共48页
微机原理与接口技术(楼顺天第二版)第四章习题解答.doc_第2页
第2页 / 共48页
微机原理与接口技术(楼顺天第二版)第四章习题解答.doc_第3页
第3页 / 共48页
微机原理与接口技术(楼顺天第二版)第四章习题解答.doc_第4页
第4页 / 共48页
微机原理与接口技术(楼顺天第二版)第四章习题解答.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、微机原理与接口技术(楼顺天第二版)习题解答第 4 章 汇编语言程序设计4.1、已知在 BUF 的起始处保存有 N 个字符的 ASCII 码,编写汇编语言程序实现,将这组字符串传送到缓冲区 BUFR 中,并且使字符串的顺序与原来的顺序相反。答: BUF DB “BONJOUR_BELLE“BUFR DB 100 DUP(?)MOV CX, NLEA SI, BUFLEA DI, BUFRADD DI,CXDEC DIL1:MOV AL,SIMOV DI,ALINC SIDEC DILOOP L14.2、利用移位、传送和相加指令实现 AX 的内容扩大 10 倍。答:将扩大后的结果放在 DX:AX

2、中,注意到 10AX8AX2AX 。XOR DX,DXSHL AX, 1RCL DX, 1MOV BX,AXMOV CX,DXSHL AX, 1RCL DX, 1SHL AX, 1RCL DX, 1ADD AX, BXADC DX, CX4.3、在缓冲区 VAR 中连续存放着 3 个 16 位的无符号数,编写程序实现将其按递增关系排列;如果 VAR 中保存的为有符号数,则再编写程序实现将其按递减关系排列。答:VAR DW 1236,-432 ,3900XOR SI,SIMOV AX,VARSICMP AX, VARSI+2JAE L1XCHG AX, VARSI+2L1: CMP AX, VA

3、RSI+4JAE L2XCHG AX, VARSI+4L2:MOV VARSI, AXMOV AX,VARSI+2CMP AX, VARSI+4JAE L3XCHG AX, VARSI+4L3: MOV VARSI+2, AX4.4、编写程序段实现将 AL 和 BL 中的每一位依次交叉,得到的 16 位字保存在 DX 中,例如(AL)01100101B, (BL )11011010B ,则得到的 (DX)10110110 10011001B。答:利用移位指令完成。XOR DX,DXMOV CX,8L1:SHR AL,1RCR DX,1SHR BL,1RCR DX,1LOOP L14.5、在变量

4、 VAR1 和 VAR2 中分别保存有两个字节型的正整数,编写完整的汇编语言程序实现:(1)当两数中有一个奇数时,将奇数存入 VAR1,偶数存入 VAR2;(2)当两数均为奇数时,两个变量的内容不变;(3)当两数均为偶数时,两数缩小一倍后存入原处。答:当 VAR1 为奇数时,不论 VAR2 的奇偶性,这两个单元的内容均不变;只有当 VAR1为偶数时,如果 VAR2 为奇数,则 VAR1 与 VAR2 内容交换;如果 VAR2 为偶数,则两数缩小一倍后存入原处。DATA SEGMENTVAR1 DB 28VAR2 DB 36DATA ENDSCODE SEGMENTASSUME CS:CODE,

5、 DS:DATA, ES:DATASTART:MOV AX, DATAMOV DS,AXMOV ES, AXMOV AL,VAR1MOV BL,VAR2TEST AL,1JZ EVEN1JMP OVEREVEN1:TEST BL,1JZ EVEN2MOV VAR1,BLMOV VAR2,ALJMP OVEREVEN2:SHR AL,1MOV VAR1,ALSHR BL,1MOV VAR2,BLOVER:MOV AH,4CHMOV AL,0INT 21HCODE ENDSEND START4.6、已知在字变量 VAR1、VAR2 和 VAR3 中保存有 3 个相同的代码,但有一个错码,编写程序段

6、找出这个错码,并将它送到 AX,其地址送 SI;如果 3 个代码都相同,则在 AX中置1 标志。答:在数据段中定义:VAR1 DW 5A34HVAR2 DW 5A35HVAR3 DW 3A34H 在代码段中编写程序段:MOV AX,-1MOV BX,VAR1CMP BX,VAR2JZ L2CMP BX,VAR3JZ L1MOV AX,BXLEA SI,VAR1JMP OVERL1:MOV AX,VAR2LEA SI,VAR2JMP OVERL2:CMP BX,VAR3JZ OVERMOV AX,VAR3LEA SI,VAR3OVER:4.7、分析下列程序段的功能:MOV CL,04SHL DX

7、,CLMOV BL,AHSHL AX,CLSHR BL,CLOR DL,BL解:程序段完成 DX:AX 组成的 32 位无符号数左移 4 位,低位补零(也即除以 16) 。4.8、阅读下列程序段,指出它完成什么运算。CMP AX, 0JGE EXITNEG AXEXIT: 答:取 AX 的绝对值。4.9、答:将 DX 中的值转换为相应的 ASCII 码字符存入 DISP 对应的 4 字节存储单元中。例如 DX=3F0BH,则在 DISP 中存放3, F, 0, B。4.10、答:将 FIRST 和 SECOND 数据相加,结果存入 FIRST 中,FIRST 中的结果为:10H,61H,01H

8、。4.11、答:将从 390H 端口读入的数据的低 4 位转换为对应 16 进制数的 ASCII 码,然后往390H 端口输出。例如读入的数据为 29H,则输出9, 读入的数据为 1BH,则输出B。4.12、答:实际上完成 BX 内容循环右移 2 位,因此,BX 寄存器的内容为 C02DH。4.13、答:完成 BX 内容逻辑右移 5 位,因此,BX 寄存器的内容为 03EAH。4.14、答:(1)AX=FFF3H ,DX=FFFAH ;(2)AX=1FF2H ,DX=0002H4.15、答:AX=FFFCH,BX=200AH,CX=0008H ,DX=2010H ,SI=2000H4.16、答

9、:LEA SI,BUFFERSLEA DI,BUFFERTMOV CX,NADD DI,NADD DI,NSUB DI,2L1:MOV AX,SIMOV DI,AXADD SI,2SUB DI,2LOOP L14.17、答:ENCRPYTION PROC NEARLEA SI,ARRAYXOR DX,DXMOV AX,SIMOV BX,5DIV BXMOV CX, AXADD SI, 2L1:MOV AX, SIXOR AX,0AAAAHMOV SI, AXADD SI,10LOOP L1RETENCRPYTION ENDP4.18、答:DATA SEGMENTARRAY DB 12,28,1

10、28,35,46,69,120,89,93,100,112,125,200DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXXOR CX,CXMOV CL,ARRAY ;数据个数存入 AXMOV SI,OFFSET ARRAY+1 ;SI 存放第一个数的偏移地址 XOR DX,DXXOR AX,AX ;AX 用来存放和,首先清零XH: XOR BX,BXMOV BL,SIADD AX,BXJNC BUYICHUADD DX,1BUYICHU:INC SILOOP XH CMP DX,0JZ OVERMOV

11、 DX,-1OVER: HLTCODE ENDSEND START4.19、答:程序如下:MOV CX,NLEA SI,BUFMOV AX,SIMOV DX,AXADD SI,2L1:CMP AX,SIJBE NOCHG1XCHG AX,SINOCHG1:CMP DX,SIJAE NOCHG2XCHG DX,SINOCHG2:ADD SI,2LOOP L1如果 BUF 中存放的是有符号数,则只需要将程序中的两行内容修改:JBE NOCHG1 改成:JLE NOCHG1JAE NOCHG2 改成:JGE NOCHG24.20、答:设 BUFFER 中存放的是字节型数据。采用双指针方法: SI 为

12、读指针,DI 为写指针,从低地址开始,内存中读出一个字节,如果不为 0,则写入内存;如果为 0,则不进行写操作。LEA SI, BUFFERXOR CX,CXMOV CL, SIINC SIMOV DI, SIXOR BH,BHXOR AL,ALL1:CMP SI,ALJZ L2MOV BL,SIMOV DI,BLINC DIINC BHL2:INC SILOOP L1MOV BUFFER,BH4.21、答:MOV CX,NMOV BX,BUF1MOV SI,0 MOV DI,OFFSET PRODUCTXH: MOV AX,BUFNSI PUSH AXMUL BXMOV DI,AX ;乘积低

13、位字ADD DI,2MOV DI,DX ;乘积高位字POP AXXOR DX,DXDIV BXMOV QUOTIENTSI,AX ;商MOV REMAINDERSI,DX ;余数ADD SI,2LOOP XH 4.22、答:统计 AL 中 1 的个数,只需将 AL 右移,移出的一位内容进行累加,子程序为:COUNTBYTE PROC NEARPUSH AXPUSH CXMOV CX,8XOR BL,BLCOU1:SHR AL,1ADC BL,0LOOP COU1POP CXPOP AXRETCOUNTBYTE ENDP在此基础上,可以检测出字节型缓冲区 BUF 中 0 和 1 个数相等的元素个

14、数,即一个字节中有 4 个 1。设 BUF 中有 N 个字节型数据,结果保持在 BH 中。MOV CX,NLEA SI, BUFXOR BH,BHL1: MOV AL,SICALL COUNTBYTECMP BL,4JNZ L2INC BHL2: INC SILOOP L14.23、答:4.24、答:4.25、答:;产生 N 个伪随机数MOV CX,NMOV SI,OFFSET NUMXOR AH,AHMOV AL,23XH: MOV SI,AL PUSH AX ADD AX,0JNP FEIJISHUINC CNT ADD SUMODD,AXFEIJISHU:POP AX ADD AL,17

15、INC SILOOP XH 4.26、答:4.27、答:4.28、答:4.29、答:4.30、答:4.31、答:4.32、答:4.33、答:STACK SEGMENT STACK STACKDW 100H DUP(?)TOP LABEL BYTESTACK ENDSDATA SEGMENTBUFFER DB 3 ;首字节为字符串长度DB ABC ;字符串DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX,STACKMOV SS,AXLEA SP,TOPMOV AX,DATAMOV DS,AXMOV E

16、S,AXLEA DI,BUFFER XOR CX,CXMOV CL,DIINC DICALL SETEVENMOV AH,4CH ;返回 DOSMOV AL,0INT 21HSETEVEN PROC NEAR ;加偶校验子程序PUSH AXPUSH BXPUSH CXPUSH DISETEVEN1:MOV AL,DICALL COUNTBYTEAND BL,01HJZ SETEVEN2OR AL,80HMOV DI,ALSETEVEN2:INC DILOOP SETEVEN1POP DIPOP CXPOP BXPOP AXRETSETEVEN ENDPCOUNTBYTE PROC NEARPU

17、SH AXPUSH CXMOV CX,8XOR BL,BLCOU1:SHR AL,1ADC BL,0LOOP COU1POP CXPOP AXRETCOUNTBYTE ENDPCODE ENDSEND START4.34、答:MOV AX,SI2*NTEST AX,8000HJZ OVERMOV CX,NXH: MOV AX,SINEG AXMOV SI,AXADD SI,2LOOP XH OVER:NOP4.35、答:设奖斐波那契数列存放在字变量 RESULT 中。在数据段中定义RESULT DW 100H DUP(?)在代码段中编写子程序FIBONACCI PROC NEARXOR DI,

18、DIMOV RESULTDI,1 ;前两个数为 1 MOV RESULTDI+2,1 ADD DI,4MOV CX,NL1:MOV AX, RESULTDI-4ADD AX, RESULTDI-2MOV RESULTDI,AXADD DI,2LOOP L1RETFIBONACCI ENDP4.36、答:在数据段中定义变量:TABLE DW INFORM1, INFORM2, INFORM3, INFORM4, INFORM5DW INFORM6, INFORM7, INFORM8, INFORM9, INFORM10在代码段中编写程序段:MOV CX,10XOR SI,SIL1: MOV DX

19、,TABLESIMOV AH,9INT 21HADD SI,2CALL WAITLOOP L1这里,WAIT 为延时子程序,用于在显示信息之间的停顿。4.37、答:先编写一个子程序 DISPALD,完成以 3 位十进制数形式显示出 AL 的内容。DISPALD PROC NEARPUSH AXPUSH CXPUSH DXXOR AH,AHMOV CL,100DIV CLPUSH AXMOV DL,30HADD DL,ALMOV AH,2INT 21HPOP AXMOV AL,AHXOR AH,AHMOV CL,10DIV CLPUSH AXMOV DL,30HADD DL,ALMOV AH,2

20、INT 21HPOP AXMOV DL,30HADD DL,AHMOV AH,2INT 21HPOP DXPOP CXPOP AXRETDISPALD ENDP在此基础上,根据题目要求,需要用到 3 个指针:SI 指向源数组 ARRAY,DI 指向正数数组 ARRAYP,BX 指向负数数组 ARRAYN。MOV CX,20XOR DX,DXLEA SI,ARRAYLEA DI,ARRAYPLEA BX,ARRAYNL1: MOV AL,SIAND AL,ALJS L2MOV DI,ALINC DIINC DLJMP L3L2: MOV BX,ALINC BXINC DHL3: INC SILO

21、OP L1MOV AL,DLCALL DISPALDMOV AL,DHCALL DISPALD4.38、答:设 BUFFER 中存放的是有符号数。MOV CX,100LEA SI,BUFFERMOV AX, 7FFFHL1: AND WORD PTR SI,1JNZ L2CMP SI,AXJGE L2MOV AX,SIL2: ADD SI,2LOOP L14.39、答:BL 用于存放项数。STACK SEGMENT STACK STACKDW 100H DUP(?)TOP LABEL WORDSTACK ENDSDATA SEGMENTDB 100H DUP(?)DATA ENDSCODE S

22、EGMENTASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA SP,TOP MOV BL,1MOV CX,0 COUNT:MOV AL, BLMUL BL ADD CX,AX CMP CX,2000JA EXIT INC BLJMP COUNTEXIT:4.40、答:设数据段的段名为 SEGNAME,则有SEGINTODS MOCRO SEGNAMEMOV AX, SEGNAMEMOV DS,AXENDMSEGINTOES MOCRO SEG

23、NAMEMOV AX, SEGNAMEMOV ES,AXENDM4.41、答:设输入字符串保存在 BUFIN 中,则有:INSTR MACRO BUFINMOV AH, 10LEA DX, BUFININT 21HENDM应该注意,BUFIN 为键盘缓冲区,应该满足格式要求,详见 INT 21H 的 10 号功能说明。4.42、答:CRLF MACROMOV AH, 02MOV DL, 10INT 21HMOV DL, 13INT 21HENDM4.43、答:设 DF=0(1) L1: MOV AL, SIMOV ES:DI, ALINC SIINC DILOOP L1(2) L1: MOV

24、AL, SIINC SILOOP L1(3) L1: MOV ES:DI, AL INC DILOOP L1(4) L1: MOV AL, SICMP AL, ES:DIINC SIINC DILOOP L14.44、答: STR1 中有 17 个字符(含一个空格) ,设 DS 和 ES 均指向 STR1 和 STR2 所在的段。(1) CLDMOV CX,17LEA SI,STR1LEA DI,STR2REP MOVSB(2) MOV CX,17LEA SI,STR1LEA DI,STR2ADD SI,CXDEC SIL1: MOV AL,SIMOV DI,ALDEC SIINC DILOO

25、P L1(3) LEA SI,STR1MOV DX,SI+6(4) MOV CX,17LEA SI,STR1MOV AL,20HL1: CMP SI, ALJZ L2INC SILOOP L1L2:4.45、答: STRING 中保存了 30 个字符。MOV CX,30LEA SI,STRINGMOV AL, Input score dataMOV AH,2CHINT 21HSEED:CMP DL,NJBE BELOWSUB DL,NJMP SEEDBELOW:MOV AL,DLMOV CX,M*5LEA SI,SCOREMOV BL,PARAAXOR DX,DXMOV DL,PARABLP:

26、ADD SI,ALINC SIMUL BLADD AX,DXLP1:CMP AX,NJB BELOW1SUB AX,NJMP LP1BELOW1:LOOP LP; Computing mean score for every studentMOV CX,MLEA SI,SCORELEA DI,MEANSCOREMOV BL,5LP2:XOR AX,AXPUSH CXMOV CX,5LP3:ADD AL,SIADC AH,0INC SILOOP LP3DIV BLMOV DI,ALINC DIPOP CXLOOP LP2; Counting levelsLEA SI,MEANSCOREMOV C

27、X,MLP4:MOV AL,SICMP AL,90JB LEVELAINC LEVELJMP LP5LEVELA:CMP AL,80JB LEVELBINC LEVEL+1JMP LP5LEVELB:CMP AL,70JB LEVELCINC LEVEL+2JMP LP5LEVELC:CMP AL,66JB LEVELDINC LEVEL+3JMP LP5LEVELD:CMP AL,60JB LEVELEINC LEVEL+4JMP LP5LEVELE:INC LEVEL+5LP5:INC SILOOP LP4; Display the resultMOV AL,MCALL TRANSMOV

28、STR0+8,ALMOV STR0+9,AHMOV AH,9LEA DX, STR0INT 21HMOV CX,6LEA BX,STR1LEA SI,LEVELLP6:MOV AL,SIINC SICALL TRANSMOV BX+8,ALMOV BX+9,AHMOV AH,9MOV DX,BXINT 21HADD BX,13LOOP LP6MOV AH,4CH ;Return to DOSMOV AL,0INT 21HTRANS PROC NEARPUSH BXMOV BL,10XOR AH,AHDIV BLADD AX,3030HPOP BXRETTRANS ENDPCODE ENDSEN

29、D START4.55、答:程序的编程思路为:程序共 5 个功能,可采用跳转表法来实现多路分支结构程序设计。现将这 5 个程序段,各程序段的首地址分别标号为 G1,G2 ,G3,G4,G5 。将 5 个程序段的入口地址做成表TABLE 放入数据段,程序根据给定的参数计算出欲转入的程序段的首地址在 TABLE 中的位置后,取出该地址,跳转至该程序段。首先,通过调用子程序 MENU,设置显示器,并输出提示文档。接着,读取 1-5之间的 ASCII 表示数。然后,通过跳转表 TABLE 实现由输入参数转入相应的程序段。由于表中按“字”存放数据,则每个数据的位移量是:0、2、4、6、8。对于输入参数

30、N,计算位移量的公式是 N=(N-1)*2。当输入1时,跳转到标号 G1。调用子程序 CHGLTR,完成将输入字符串中的小写字母变换成大写字母。用户按键,若为 ESC,则转到主程序段首调用 MENU,否则,转到标号G1;当输入2时,跳转到标号 G2。调用子程序 MAXLTR,完成在输入字符串中找最大值。用户按键,若为 ESC,则转到主程序段首调用 MENU,否则,转到标号 G2;当输入3时,跳转到标号 G3。调用子程序 SORTNUM,完成输入数据组的排序。用户按键,若为 ESC,则转到主程序段首调用 MENU,否则,转到标号 G3。当输入4时,跳转到标号 G4。调用子程序 TIMCHK,完成

31、时间的显示。用户按键,若为 ESC,则转到主程序段首调用 MENU,否则,转到标号 G4。当输入5时,跳转到标号 G5。结束程序的运行,返回操作系统。程序流程框图见图 4-1。图 4-1 主程序流程框图START初始化调用子程序 MENU设置光标位置(41,10)带回显的控制台输入(AL) 输入字符(AL) 5将跳转表 TABLE 的偏移地址送入(BX)(AL) (AL) 1(AL) (AL) * 2AL 按符号扩展成 AX(BX) TABLE(BX) (BX) + (AX)A B CEENDDN=1 N=2 N=3 N=4N=5NNYY图 4-1(续) 主程序流程框图调用子程序 MAXLTR

32、带回显的控制台输入(AL) 输入字符BE(AL) = ESC ?YN调用子程序 TIMCHK带回显的控制台输入(AL) 输入字符DE(AL) = ESC ?YN调用子程序SORTNUM带回显的控制台输入(AL) 输入字符CE(AL) = ESC ?YN调用子程序 CHGLTR带回显的控制台输入(AL) 输入字符AE(AL) = ESC ?YN子程序 MENU 的编程思路:设置显示器显示方式为 80*25 彩色文本方式,清屏。逐行设置光标位置,使提示文档左对齐整体居中。输出 1-5 的提示文档,再输出输入 N 的提示。其流程框图见图 4-2。图 4-2 子程序 MENU 流程框图START初始化

33、 清屏设置光标位置(5,5)显示提示字符串STRING1设置光标位置(5,6)显示提示字符串STRING2M设置光标位置(5,7)显示提示字符串STRING3设置光标位置(5,8)显示提示字符串STRING4MN设置光标位置(5,9)显示提示字符串STRING5设置光标位置(5,10)显示提示字符串STRINGN子程序 MENU 返回N子程序 CHGLTR 的编程思路:设置显示器显示方式为 80*25 彩色文本方式,清屏。设置光标位置,使提示文档左对齐整体居中。输出输入字符串提示文档,读取输入字符串并将其放入 KEYBUF。在输入字符串尾加结束标志$,输出输入字符串。从前往后,依次取字符串中的

34、每个字符,若其为小写字母,则将其 ASCII 码减去 20H。输出变换后的字符串。最后输出说明文档。其流程框图见图 4-3。子程序 MAXLTR 的编程思路:设置显示器显示方式为 80*25 彩色文本方式,清屏。设置光标位置,使提示文档左对齐整体居中。输出输入字符串提示文档,读取输入字符串并将其放入 KEYBUF。在输入字符串尾加结束标志$,输出输入字符串。预设字符串中最大值为 0。从前往后,依次取字符串中的每个字符,若其大于当前最大值,则进行替换,即可得到字符串中的最大值,并输出。最后输出说明文档。其流程框图见图 3-4。子程序 SORTNUM 的编程思路:设置显示器显示方式为 80*25

35、彩色文本方式,清屏。设置光标位置,使提示文档左对齐整体居中。输出输入数据组提示文档,读取输入数据组字符串并将其放入 KEYBUF。调用子程序 CIN_INT,将字符串转换成数据串。判断数据串是否有错误或者为空,若是,则重新输入数据组。调用子程序 MPSORT,采用冒泡法对数据串进行排序。再调用子程序INT_OUT,输出排序后的数据组。最后输出说明文档。其流程框图见图 4-5。子程序 CIN_INT 的编程思路:入口参数为:无;出口参数为:AL(有无错误标志,0 为有,1 为无) 。从前往后,依次取字符串中的每个字符进行判断。CH 表示数据组数据个数,AL 表示当前数据 x,DL作为有无数据标志

36、。若当前字符为空格,则转到 ADDNUM,判断 DL 是否为 1,若为 1,则 CH 增 1,调用子程序 ADDNEW,增加新数 x,然后 DL、AL 清零;否则判断当前字符c 是否在0-9之间,若不是,则判错,将 AL 置 0,子程序 CIN_INT 返回;否则,DL 置1,x=x*10+c-0,判断 x 是否超过 255,若是,则判错,将 AL 置 0,子程序 CIN_INT 返回;否则,对下一个字符进行操作。字符串判断结束后,若 DL 为 1,则有新数 x 未加至数据组,调用子程序 ADDNEW,增加新数 x。将数据组个数 CH 放入 NUMBUF,将 AL置 1。其流程框图见图 4-6

37、。子程序 ADDNEW 的编程思路:入口参数为:CH(数据组数据个数) 、AL(当前数据 x) ;出口参数为:无。取出数据组 NUMBUF 的首地址,加上数据组数据个数,即为当前数据 x 的地址,将 x 放入该地址。其流程框图见图 4-7。子程序 MPSORT 的编程思路:对 N 个数据进行从小到大排序,采用 “冒泡法”:从前往后,每两个数据进行比较,当前者大于后者时,交换两者的次序;否则不变。经过 N-1 次比较,可以将最大值交换到第 N个单元。接着对前 N-1 个数据,重复上述过程,使次大值交换到第 N-1 个单元;依此类推,若某次比较过程,无任何交换,则终止其后的所有比较过程。最多进行

38、N-1 次比较过程,可以完成数据的排序操作。其流程图见图 4-8。子程序 IN_OUT 的编程思路:从数据组中依次取出每个数据,调用 OUTNUM,将十进制数据转成十六进制进行输出,数据之间输出一个空格作为分隔符。其流程图见图 4-9。子程序 OUTNUM 的编程思路:入口参数:AL(待转换的数据) ,BL(转换进制数) ;出口参数:无。待转换数据 x 除以转换进制数,商为新的 x,余数 y 为转换后的低位。保存 y,调用子程序 OUTNUM 本身,对新的 x 进行进制转换并输入。取出 y,对其进行输入,若低于 10,则直接输出,否则转换成字母输出。其流程图见图 3-10。子程序 TIMCHK 的编程思路:设置显示器显示方式为 80*25 彩色文本方式,清屏。设置光标位置,输出设置时间提示文档。读取输入时间字符串并将其放入 KEYBUF。分别判断时、分、秒是否在有效数字范围,若有效,则设置新的系统时间。调用子程序 TIME,在屏幕的右上角实时显示时间。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报