
汇编语言分为_,_,_三种,其中能被计算机直接识别和执行的是_
4个回答
展开全部
;用键盘输入一个字符串(回车结束),含有若干大小写字母,数字,要求统计出三种类型各有多少个,并显示
data segment
mess db 0dh,0ah,'Input String: $'
sz db 0 ;数字个数
dAx db 0 ;大写个数
xXx db 0 ;小写个数
SZ_C DB 100 DUP ('$')
DX_C DB 100 DUP ('$')
XX_C DB 100 DUP ('$')
CRLF DB 0DH,0AH,'$'
data ends
code segment
assume cs:code, ds:data
main proc far
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
;-------------------------
call crlf_p
mov ah,09
mov dx,offset mess
int 21h
next:
mov ah,01
int 21h
CMP AL,0DH
JNZ GOON
JMP DISP_1 ;显示结果
GOON:
cmp al,'0'
jl NEXT
cmp al,'9'
jg NO_0_9
inc SZ
MOV BX,OFFSET SZ_C
MOV CX,0
MOV CL,SZ
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_0_9:
cmp al,'A'
jl NEXT
cmp al,'Z'
jg NO_D_AZ
inc DAX
MOV BX,OFFSET DX_C
MOV CX,0
MOV CL,DAX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_D_AZ:
cmp al,'a'
jl NEXT
cmp al,'z'
jg NO_X_AZ
inc XXX
MOV BX,OFFSET XX_C
MOV CX,0
MOV CL,XXX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_X_AZ:
JMP NEXT
DISP_1:
CALL CRLF_P
CALL CRLF_P
mov al,SZ
CALL DISP_CZR
mov ah,09
lea dx,SZ_C
int 21h
;-----------------
CALL CRLF_P
mov al,DAX
CALL DISP_CZR
mov ah,09
lea dx,DX_C
int 21h
;-------------------
CALL CRLF_P
mov al,XXX
CALL DISP_CZR
mov ah,09
lea dx,XX_C
int 21h
;---------------------
CALL CRLF_P
;-------------------------
ENDD:
ret
main endp
;=========================================
DISP_CZR PROC NEAR ;显示10进制数字子程序
xor ah,ah
;mov al,num
mov bl,100d
div bl
push ax
add al,30h
mov dl,al
mov ah,2
int 21h
pop ax
mov al,ah
xor ah,ah
mov bl,10d
div bl
add ax,3030h
push ax
pop dx
mov ah,2
int 21h
mov dl,dh
int 21h
MOV DL,':'
INT 21H
mov dl,' '
int 21h
RET
DISP_CZR ENDP
;==========================================
CRLF_P PROC NEAR ;回车换行子程序
mov ah,09
LEA DX,CRLF
INT 21H
RET
CRLF_P ENDP
;=========================================
code ends
end start
用MASM5.0汇编,用LINK连接,以下是运行实例:
Input String: DHGFEUUYURYEDBJB834658634853NGFJ8HJHGjsfjdf8fhdjfh
014: 83465863485388
024: DHGFEUUYURYEDBJBNGFJHJHG
012: jsfjdffhdjfh
data segment
mess db 0dh,0ah,'Input String: $'
sz db 0 ;数字个数
dAx db 0 ;大写个数
xXx db 0 ;小写个数
SZ_C DB 100 DUP ('$')
DX_C DB 100 DUP ('$')
XX_C DB 100 DUP ('$')
CRLF DB 0DH,0AH,'$'
data ends
code segment
assume cs:code, ds:data
main proc far
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
;-------------------------
call crlf_p
mov ah,09
mov dx,offset mess
int 21h
next:
mov ah,01
int 21h
CMP AL,0DH
JNZ GOON
JMP DISP_1 ;显示结果
GOON:
cmp al,'0'
jl NEXT
cmp al,'9'
jg NO_0_9
inc SZ
MOV BX,OFFSET SZ_C
MOV CX,0
MOV CL,SZ
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_0_9:
cmp al,'A'
jl NEXT
cmp al,'Z'
jg NO_D_AZ
inc DAX
MOV BX,OFFSET DX_C
MOV CX,0
MOV CL,DAX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_D_AZ:
cmp al,'a'
jl NEXT
cmp al,'z'
jg NO_X_AZ
inc XXX
MOV BX,OFFSET XX_C
MOV CX,0
MOV CL,XXX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_X_AZ:
JMP NEXT
DISP_1:
CALL CRLF_P
CALL CRLF_P
mov al,SZ
CALL DISP_CZR
mov ah,09
lea dx,SZ_C
int 21h
;-----------------
CALL CRLF_P
mov al,DAX
CALL DISP_CZR
mov ah,09
lea dx,DX_C
int 21h
;-------------------
CALL CRLF_P
mov al,XXX
CALL DISP_CZR
mov ah,09
lea dx,XX_C
int 21h
;---------------------
CALL CRLF_P
;-------------------------
ENDD:
ret
main endp
;=========================================
DISP_CZR PROC NEAR ;显示10进制数字子程序
xor ah,ah
;mov al,num
mov bl,100d
div bl
push ax
add al,30h
mov dl,al
mov ah,2
int 21h
pop ax
mov al,ah
xor ah,ah
mov bl,10d
div bl
add ax,3030h
push ax
pop dx
mov ah,2
int 21h
mov dl,dh
int 21h
MOV DL,':'
INT 21H
mov dl,' '
int 21h
RET
DISP_CZR ENDP
;==========================================
CRLF_P PROC NEAR ;回车换行子程序
mov ah,09
LEA DX,CRLF
INT 21H
RET
CRLF_P ENDP
;=========================================
code ends
end start
用MASM5.0汇编,用LINK连接,以下是运行实例:
Input String: DHGFEUUYURYEDBJB834658634853NGFJ8HJHGjsfjdf8fhdjfh
014: 83465863485388
024: DHGFEUUYURYEDBJBNGFJHJHG
012: jsfjdffhdjfh
展开全部
机器语言,汇编语言,高级语言
机器语言
机器语言
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
机器语言,汇编语言,高级语言
机器语言
这基本知识浪费10分不值得。
机器语言
这基本知识浪费10分不值得。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
;用键盘输入一个字符串(回车结束),含有若干大小写字母,数字,要求统计出三种类型各有多少个,并显示
data segment
mess db 0dh,0ah,'Input String: $'
sz db 0 ;数字个数
dAx db 0 ;大写个数
xXx db 0 ;小写个数
SZ_C DB 100 DUP ('$')
DX_C DB 100 DUP ('$')
XX_C DB 100 DUP ('$')
CRLF DB 0DH,0AH,'$'
data ends
code segment
assume cs:code, ds:data
main proc far
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
;-------------------------
call crlf_p
mov ah,09
mov dx,offset mess
int 21h
next:
mov ah,01
int 21h
CMP AL,0DH
JNZ GOON
JMP DISP_1 ;显示结果
GOON:
cmp al,'0'
jl NEXT
cmp al,'9'
jg NO_0_9
inc SZ
MOV BX,OFFSET SZ_C
MOV CX,0
MOV CL,SZ
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_0_9:
cmp al,'A'
jl NEXT
cmp al,'Z'
jg NO_D_AZ
inc DAX
MOV BX,OFFSET DX_C
MOV CX,0
MOV CL,DAX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_D_AZ:
cmp al,'a'
jl NEXT
cmp al,'z'
jg NO_X_AZ
inc XXX
MOV BX,OFFSET XX_C
MOV CX,0
MOV CL,XXX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_X_AZ:
JMP NEXT
DISP_1:
CALL CRLF_P
CALL CRLF_P
mov al,SZ
CALL DISP_CZR
mov ah,09
lea dx,SZ_C
int 21h
;-----------------
CALL CRLF_P
mov al,DAX
CALL DISP_CZR
mov ah,09
lea dx,DX_C
int 21h
;-------------------
CALL CRLF_P
mov al,XXX
CALL DISP_CZR
mov ah,09
lea dx,XX_C
int 21h
;---------------------
CALL CRLF_P
;-------------------------
ENDD:
ret
main endp
;=========================================
DISP_CZR PROC NEAR ;显示10进制数字子程序
xor ah,ah
;mov al,num
mov bl,100d
div bl
push ax
add al,30h
mov dl,al
mov ah,2
int 21h
pop ax
mov al,ah
xor ah,ah
mov bl,10d
div bl
add ax,3030h
push ax
pop dx
mov ah,2
int 21h
mov dl,dh
int 21h
MOV DL,':'
INT 21H
mov dl,' '
int 21h
RET
DISP_CZR ENDP
;==========================================
CRLF_P PROC NEAR ;回车换行子程序
mov ah,09
LEA DX,CRLF
INT 21H
RET
CRLF_P ENDP
;=========================================
code ends
end start
用MASM5.0汇编,用LINK连接,以下是运行实例:
Input String: DHGFEUUYURYEDBJB834658634853NGFJ8HJHGjsfjdf8fhdjfh
014: 83465863485388
024: DHGFEUUYURYEDBJBNGFJHJHG
012: jsfjdffhdjfh
data segment
mess db 0dh,0ah,'Input String: $'
sz db 0 ;数字个数
dAx db 0 ;大写个数
xXx db 0 ;小写个数
SZ_C DB 100 DUP ('$')
DX_C DB 100 DUP ('$')
XX_C DB 100 DUP ('$')
CRLF DB 0DH,0AH,'$'
data ends
code segment
assume cs:code, ds:data
main proc far
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
;-------------------------
call crlf_p
mov ah,09
mov dx,offset mess
int 21h
next:
mov ah,01
int 21h
CMP AL,0DH
JNZ GOON
JMP DISP_1 ;显示结果
GOON:
cmp al,'0'
jl NEXT
cmp al,'9'
jg NO_0_9
inc SZ
MOV BX,OFFSET SZ_C
MOV CX,0
MOV CL,SZ
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_0_9:
cmp al,'A'
jl NEXT
cmp al,'Z'
jg NO_D_AZ
inc DAX
MOV BX,OFFSET DX_C
MOV CX,0
MOV CL,DAX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_D_AZ:
cmp al,'a'
jl NEXT
cmp al,'z'
jg NO_X_AZ
inc XXX
MOV BX,OFFSET XX_C
MOV CX,0
MOV CL,XXX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT
NO_X_AZ:
JMP NEXT
DISP_1:
CALL CRLF_P
CALL CRLF_P
mov al,SZ
CALL DISP_CZR
mov ah,09
lea dx,SZ_C
int 21h
;-----------------
CALL CRLF_P
mov al,DAX
CALL DISP_CZR
mov ah,09
lea dx,DX_C
int 21h
;-------------------
CALL CRLF_P
mov al,XXX
CALL DISP_CZR
mov ah,09
lea dx,XX_C
int 21h
;---------------------
CALL CRLF_P
;-------------------------
ENDD:
ret
main endp
;=========================================
DISP_CZR PROC NEAR ;显示10进制数字子程序
xor ah,ah
;mov al,num
mov bl,100d
div bl
push ax
add al,30h
mov dl,al
mov ah,2
int 21h
pop ax
mov al,ah
xor ah,ah
mov bl,10d
div bl
add ax,3030h
push ax
pop dx
mov ah,2
int 21h
mov dl,dh
int 21h
MOV DL,':'
INT 21H
mov dl,' '
int 21h
RET
DISP_CZR ENDP
;==========================================
CRLF_P PROC NEAR ;回车换行子程序
mov ah,09
LEA DX,CRLF
INT 21H
RET
CRLF_P ENDP
;=========================================
code ends
end start
用MASM5.0汇编,用LINK连接,以下是运行实例:
Input String: DHGFEUUYURYEDBJB834658634853NGFJ8HJHGjsfjdf8fhdjfh
014: 83465863485388
024: DHGFEUUYURYEDBJBNGFJHJHG
012: jsfjdffhdjfh
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询