资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
1.从屏幕上显示大写字母 A CODE SEGMENT ASSUME CS:CODE MAIN:MOV AH,2 MOV DL,A INT 21H MOV AH,4CH INT 21H CODE ENDS END MAIN2.用十进制显示一个按键的 ASCII 码值要求连续运行,按空格退出。CODE SEGMENTASSUME CS:CODEMAIN:MOV AH,1 INT 21H CMP AL,20H JZ EXIT MOV AH,0 MOV BL,100 DIV BL MOV CL,AL ADD CL,30H MOV AL,AH MOV AH,0 MOV BL,10 DIV BL ADD AL,30H ADD AH,30H MOV BX,AX MOV AH,2 MOV DL,13 INT 21H MOV DL,10 INT 21H MOV DL,CL INT 21H MOV DL,BL INT 21H MOV DL,BH INT 21H JMP MAIN EXIT: MOV AH,4CH INT 21HCODE ENDS END MAIN3.从键盘输入三个按键,按 ASCII 码值从大到小顺序输出,要求格式如 2bA/bA2,连续运行,按回车退出(1)。 CODE SEGMENT ASSUME CS:CODE MAIN:MOV AH,1 INT 21H CMP AL,13 JZ EXIT MOV BH,AL INT 21H MOV BL,AL CMP BH,BL JA L1 XCHG BH,BL L1:MOV AH,1 INT 21H CMP AL,BH JA L2 CMP al,BL JB L3 XCHG BL,AL JMP L3 L2: XCHG BH,AL XCHG BL,AL L3:MOV CL,AL MOV AH,2 MOV DL,/ INT 21H MOV DL, BH INT 21H MOV DL,BL INT 21H MOV DL,CL INT 21H MOV AH,2 MOV DL,13 INT 21H MOV DL,10 INT 21H JMP MAINEXIT:MOV AX,4C00H INT 21HCODE ENDS END MAIN4.从键盘读入两个一位数,输出它们的积。code SEGMENTASSUME CS:codemain: MOV AH,1INT 21H ;读入第一个数符 CMP AL,0JB lab1 ;ASCII 值比0小则不是数;字,转 lab1CMP AL,9JA lab1 ;ASCII 值比9大也不是数;字, 转 lab1MOV BL,AL ;临时保存在 BL 中MOV AH,2MOV DL,13MOV AH,1INT 21H ;读入第二个数符CMP AL,0JB lab1 ;ASCII 值比0小则不是数字,转 lab1CMP AL,9JA lab1 ;ASCII 值比9大也不是数字,转 lab1SUB AL,30H ;把后读入的数符转换成数值SUB BL,30H ;把先读入的数符转换成数值MUL BL ;两个一位数相乘,积在AX 中MOV BL,10DIV BL ;分解出积的十位数字与个位数字ADD AX,3030HMOV BX,AX MOV AH,2 MOV DL,13INT 21H ;回车MOV DL,10INT 21H ;换行MOV DL,BLINT 21HMOV DL,BHINT 21HJMP lab2 lab1:MOV AH,2MOV DL,EINT 21Hlab2:MOV AH,4CHINT 21H ;交还控制权给 DOScode ENDSEND main5.从键盘接收一个按键,如果按键是小写字母则输出“L”,是大写字母则输出“U”,如果是数字则输出“N”,都不是则输出“*”。【解】code SEGMENTASSUME CS:codestart: MOV AH,1INT 21HCMP AL,0JB lab1 ;按键的 ASCII 小于0,则;不是字母和数字CMP AL,9JA lab2 ;不是数字转MOV DL,N ;是数字,准备输出NJMP lab3lab2: CMP AL,AJB lab1 ;不是字母和数字,转 lab1CMP AL,ZJA lab4 ;不是大写字母转MOV DL,U ;是大写字母,准备输出UJMP lab3lab4: CMP AL,aJB lab1 ;不是字母和数字,转 lab1CMP AL,zJA lab1 ;不是字母和数字,转 lab1MOV DL,L ;是小写字母,准备输出LJMP lab3lab1: MOV DL,* ;不是字母和数字,准备输出*lab3: MOV AH,2INT 21H ;输出准备好的字符MOV AH,4CHINT 21H ;交还控制权给 DOScode ENDSEND start6.编写完整程序,在一行上依次显示 26 个大写英文字母。【分析】英文字母的数目是确定的,如果每次显示一个字母,则循环一定执行 26 次,这是已知次数的循环。code SEGMENTASSUME CS:codestart: MOV CX,26 ;预定的执行次数 26MOV DL,Alab1: MOV AH,2INT 21H ;显示一个字母ADD DL,1 ;准备好下一个字母LOOP lab1 ;循环控制MOV AX,4C00H ;AL 中放交还控制权时附带的返回码INT 21H ;交还控制权code ENDSEND start7.在屏幕上显示如下由数字拼成的形状:0123456789123456789023456789013456789012456789012356789012346789012345789012345689012345679012345678【分析】这是典型的内外循环相套的情况,用外循环控制 10 行,内循环控制每一行上的 10 个符号,尽管内外循环都确切地知道执行次数,但只能把其中之一用 LOOP 指令实现。【解】code SEGMENTASSUME CS:codemain: MOV BL,0 ;外循环用 BL 从 0 数到 9 控制lab1: MOV CX,10 ;内循环用 LOOP 指令,CX 中放次数 10MOV DL,0ADD DL,BL ;DL 中放每行第一个要显示的字符lab2:MOV AH,2INT 21H ;显示 DL 中的字符ADD DL,1CMP DL, 9JBE lab3MOV DL,0 ;DL 逐个递增取下一符号,超过9则回0;内循环控制MOV DL,13INT 21H ;回车MOV DL,10INT 21H ;换行ADD BL,1CMP BL,10JB lab1 ;外循环控制MOV AX,4C00HINT 21H ;交还控制权code ENDSEND main8. 编写完整程序,用二进制输出一个按键的 ASCII 值。要求格式如 A=01000001H,连续运行,按回车退出CODE SEGMENTASSUME CS:CODE MAIN:MOV AH,1 INT 21H MOV BL,AL CMP AL,20H JE EXIT MOV AH,2 MOV DL,= INT 21H MOV CX,8L: MOV AH,0MOV AL,BLMOV DL,2MUL DLMOV BL,ALJC L1MOV DL,30HJMP L2L1: MOV DL,31H L2: MOV AH,2INT 21HLOOP LMOV AH,2MOV DL,BINT 21HMOV DL,13INT 21HMOV DL,10INT 21HJMP MAINEXIT:MOV AH,4CHINT 21HCODE ENDSEND MAIN9 .编写完整程序,用十六进制输出一个按键的 ASCII 值,要求输出形式是:A=41H code segment assume cs:code main:mov ah,1 int 21h cmp al,20h je l2 mov ah,0 mov bl,16 div bl add ax,3030h mov bx,axmov ah,2mov dl,=int 21hmov dl,blint 21h cmp bh,39hjna l1add bh,07hl1: mov dl,bhmov ah,2int 21hmov dl,Hint 21hmov dl,13int 21hmov dl,10int 21hJMP mainl2: mov ah,4chint 21hcode endsend main10. 字符串输入输出程序实例 【例 5.8】编写完整程序,在屏幕上输出下面的图形:9897896789567894567893456
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号