1、上机题目:代码转换
内容:用子程序设计的方法,分别把BUF字单元中的四位十六进制数转换为ASCII码存入MAS开始的单元中,并在终端上显示MAS开始的4个字节单元。
BUF DW X
MAS DB 4 DUP(?)
要求:熟练掌握子程序设计方法
代码:
INCLUDE IRVINE32.INC
.DATA
BUF WORD 012CDH
MAS byte 4 DUP(?)
.CODE
MAIN PROC
CALL CHANGE
exit
MAIN ENDP
CHANGE PROC
MOV CL,4 ;
MOV DX,BUF ;
mov esi,0;
.WHILE CL>0
DEC CL ;
ROL DX,4 ;
mov bx,dx;
and bl,00001111b;
.IF bl<0AH
ADD bL,48 ;
JMP NEXT ;
.ENDIF
ADD bL,55 ;
NEXT:
XOR EAX,EAX ;
MOV AL,bL ;
mov mas[esi],al;
add esi,1;
CALL WRITEINT ;
call crlf;
.ENDW
RET
CHANGE ENDP
END MAIN
2、上机题目:键盘输入
内容:从键盘输入一串字母并保存在string开始的地址单元,要求将该字符串中的大写字母转化为小写字母后用子程序实现在终端上依次显示该串字母的 ASCII码。
string db n dup(?)
要求:熟练掌握子程序设计方法,画子程序、主程序流程图
代码:
INCLUDE IRVINE32.INC
.DATA
MAXN BYTE 20 ;
STRING BYTE 20 DUP(?) ;
N BYTE ? ;
.CODE
MAIN PROC
CALL READ ;
CALL WRITE ;
exit
MAIN ENDP
READ PROC
MOV EDX,OFFSET STRING ;
XOR ECX,ECX ;
MOV CL,MAXN ;
CALL READSTRING ;
MOV N,AL ;
RET
READ ENDP
WRITE PROC
XOR ECX,ECX ;
MOV ESI,0 ;
MOV CL,N ;
.WHILE CL>0 ;
DEC CL ;
XOR EAX,EAX ;
MOV AL,STRING[ESI] ;
.IF AL<=90
ADD AL,32 ;
.ENDIF
CALL WRITEINT ;
CALL CRLF ;
INC ESI ;
.ENDW
RET
WRITE ENDP
END MAIN