data segment
org 1000h
zs db 'zhangshan ','90 ','2 ','$'
org 1020h
ls db 'lishi ','80 ','6 ','$'
org 1040h
ww db 'wangwu ','87 ','3 ','$'
org 1060h
xm db 'xiaoming ','82 ','4 ','$'
org 1080h
xh db 'xiaohong ','80 ','5 ','$'
data ends
code segment
assume cs:code
start:
mov ax,data
mov ds,ax
mov ah,1
int 21h
int 21h
int 21h
int 21h
mov ah,al
sub ah,30h
mov cl,4
shl ah,cl
mov bh,ah
mov ah,1
int 21h
sub al,30h
xor bh,al
mov al,bh
mov cx,5
mov bl,31h
s:cmp al,bl
jz m
add bl,1
daa
loop s
jmp over
m:mov bl,al
mov ah,2
mov dl,' '
int 21h
mov dl,' '
int 21h
mov al,bl
d:sub al,31h
mov cl,20h
mul cl
add ax,1000h
mov dx,ax
mov ah,9
int 21h
call crlf
jmp start
crlf:
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
ret
over:
mov ah,4ch
int 21h
code ends
end start
学号最后两位当做变动位,就是041是固定的,最后两位变动从31开始,程序中我只写了5个例子。本程序中你可以写31到99这些号,处理的是最后两位,处理更多位数为学号变动位的情况也可依此类推。
本程序运行:
直接运行程序,输入5位后 自动显示学号对应的学生信息,可以重复输入而后自动显示,如果输入不在学号范围内则直接结束。