java webserver 跨域:一个关于汇编语言编程的问题!

来源:百度文库 编辑:高考问答 时间:2024/05/04 05:42:39
有一个题目不知道用什么方法做,(最好加入Code说明)题目是这样的:
在屏幕上任意输入字母,当输入‘X’的时候,程序推出。然后输出这些字母和他们被输入的次数!!!

enter character: DGdfgfCADGG
A: 1
C: 1
D: 2
G: 3
d: 1
f: 2
g: 1
需要在dos下运行,而且要用TASM文件COMPLIER~

;;;;;======== x86 Assemble =============;;;;;;;;;;;;;;;;
CR equ 0dh
LF equ 0ah
Output MACRO pStr ; Output Massages
lea dx,pStr
mov ah,9
int 21h
ENDM
CRLF Macro ; Return and Line
mov dl,CR
mov ah,2
int 21h
mov dl,LF
mov ah,2
int 21h
ENDM
SIGN Macro
mov dl,':'
mov ah,2
int 21h
EndM
;---------------------------------------------
DATA segment
Msg1 db 'Enter a String:',CR,LF,'$'
big db 26 dup(0)
small db 26 dup(0)
DATA ends
;---------------------------------------------
CODE segment
ASSUME CS:CODE,DS:DATA
START:
mov ax,DATA
mov ds,ax
;------------------------ Codes below ---
Output Msg1
xor bx,bx
NEXT:
mov ah,1
int 21h
cmp al,'*' ;输入星号结束,可换成你想要的符号
je Disp
cmp al,60h ;41-5A为大写字母,61-7A为小写.
jb BIGER
sub al,61h
mov bl,al
mov si,offset small
inc byte ptr [bx][si]
jmp NEXT
BIGER:
sub al,41h
mov bl,al
mov si,offset big
inc byte ptr [bx][si]
jmp NEXT
Disp:
CRLF
xor bx,bx
LOOP1:
lea si,big
mov cl,[bx][si]
cmp cl,0
je LOOP2
mov dl,bl
add dl,41h
mov ah,2
int 21h
SIGN
mov dl,cl
add dl,30h
mov ah,2
int 21h
CRLF
LOOP2:
lea si,small
mov cl,[bx][si]
cmp cl,0
je LOOP3
mov dl,bl
add dl,61h
mov ah,2
int 21h
SIGN
mov dl,cl
add dl,30h
mov ah,2
int 21h
CRLF
LOOP3:
inc bx
cmp bx,25
jnz LOOP1
;----------------------------------------
Exit:
mov ah,1
int 21h
mov ah,4ch
int 21h
CODE ends
end START ;End Program

///////////////////////////
可以运行
当输入星号(*)时,自动结束,并换行输出结果。
可以将*换成你想要的字符。