目录
1、从键盘输入一个字符串(长度不超过30),统计字符串中非数字的个数,并将统计的结果显示在屏幕上,用EXE格式实现。
2、统计一个16位二进制数中1的个数,并将结果以十六进制形式显示在屏幕上,用COM格式实现。
3、从键盘输入两个一位十进制数,求它们的和,并将结果以十进制形式输出。
4、从键盘输入一个十进制个位数,在屏幕上显示相应数量的该数。例如,输入3,屏幕上将显示“333”。
7、字节数组X中存放着 0~F共16个十六进制数,请将这些数以十六进制形式显示在屏 幕上。
9、设在起始地址为STRING的存储空间存放了一个字符串(该串已存放在内存中,无需输入,且串长不超过99),统计字符串中字符“A”的个数,并将结果显示在屏幕上。
10、比较两个等长的字符串,若相同,则输出Match!,若不同,则输出No Match!。
1、从键盘输入一个字符串(长度不超过30),统计字符串中非数字的个数,并将统计的结果显示在屏幕上,用EXE格式实现。
data segment
str db 30,?,30 dup(?);30是限制个数,?存储实际个数
count db 0
data ends
code segment
assume cs:code,ds:data
main proc far
start:
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
lea dx,str
mov ah,0ah
int 21h
mov cl,str+1
mov ch,0
mov si,2
L3:
cmp str[si],30h
jae L1
inc count
jmp L2
L1:
cmp str[si],39h
jbe L2
inc count
L2:
inc si
loop L3
mov ah,02h
mov dl,0dh
int 21H
mov ah,02h
mov dl,0ah
int 21H
lea bx,count
mov ax,[bx]
或
mov al,count
mov ah,00h
mov bl,10
div bl;余数在ah,商在al
mov dx,ax
add dx,3030h;转化成十\个位对应的ASCII码
mov ah,2
int 21h
mov dl,dh
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end start
2、统计一个16位二进制数中1的个数,并将结果以十六进制形式显示在屏幕上,用COM格式实现。
code segment
org 100h
assume cs:code
main proc near
start:
mov bx,0a39h
mov si,0
mov cx,16
next:
shr bx,1
jnc l1
inc si
l1:
loop next
mov dx,si
add dx,30h
cmp dl,3ah ;看1是否超过十个
jb l2
add dl,7
l2:
mov ah,02h
int 21h
mov ax,4c00h
int 21h
main endp
code ends
end start
3、从键盘输入两个一位十进制数,求它们的和,并将结果以十进制形式输出。
code segment
assume cs:code
start:
mov ah,01
int 21h
mov bl,al;存储在al中
mov ah,01
int 21h
mov bh,al
sub bx,3030h
add bl,bh
mov al,bl
mov ah,00h
mov bl,10
div bl
add ax,3030h
push ax;保护ax中数据
mov dl,al
mov ah,2
int 21h
pop a