1.在键盘上输入一个字符,判断是否为数字字符,是的话输出'Y',不是输出‘N'
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
mov AH,1
INT 21H
MOV BL,AL
CMP BL,'0'
JAE L1
JMP L3
L1:CMP BL,'9'
JBE L2
JMP L3
L2: MOV DL,'Y'
MOV AH,2
INT 21H
JMP OVER
L3:MOV DL,'N'
MOV AH,2
INT 21H
OVER:
MOV AH,4CH
INT 21H
CODES ENDS
END START
2.计算前10个正整数的和
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AL,0;循环次数
MOV BL,0;累加结果
L1:
ADD AL,1
ADD BL,AL
CMP AL,10;比较
JB L1;如果小于10,执行L1,否则忽略
MOV AL, BL
MOV AH,0
MOV CL, 10
DIV CL
ADD AL, 48;商自动存到al
MOV DL, AL;dl = al
MOV BL, AH;将余数放到别的位置,下一条ah = 2
MOV AH,2;输出
INT 21H
ADD BL,48;余数自动存到ah
MOV DL,BL;dl = bl
MOV AH,2;输出
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
3.无符号十进制形式输出ax中的数
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
mov ax, 1234; 将 ax 赋值 123
mov cl, 10; cl 是每次 除以 10
mov ch, 0; 计算 除了多少次,也就是有几位
L0: div cl; ax 除以 cl
push ax; 此时的商存储在 al 中;余数存储在 ah 中,此时 ax = ah
add ch, 1
mov ah, 0
cmp ax, 0;如果 ax 是 0,说明除干净了
jne L0
again: cmp ch, 0; 此时 ch 的值就是位数,每次出栈,;然后 ch 减一即可
je over
pop dx; 把栈顶元素存储到 dx 中
mov dl, dh;然后将 dl 的值等于 dh
add dl, 48
mov ah, 2
int 21h
dec ch
jmp again
over:
MOV AH,4CH
INT 21H
CODES ENDS
END START
4,从键盘上输入10个字符,判断其中数字字符的个数
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
mov bl,0;记录输入的个数
mov ch,0;数字的个数
wh:cmp bl,10
ja over
mov ah,1
int 21h
mov cl,al;输入放在cl中
add bl,1
cmp cl,'0'
jae L1
jmp wh
L1:cmp cl,'9'
jbe L2
jmp wh
L2:add ch,1
jmp wh
over:
mov dl,13
mov ah,2
int 21h
mov dl,10
mov ah,2
int 21h
add ch,48
mov dl,ch
mov ah,2
int 21h
MOV AH,4CH
INT 21H
CODES ENDS
END START
5.从键盘上输入若干个字符,如果是数字字符,对数值位相加,直到累加到结果大于20为止
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
mov ch,0;数字和
wh:mov ah,1
int 21h
mov cl,al;输入放在cl中
sub cl,48
cmp cl,0
jae L1
jmp wh
L1:cmp cl,9
jbe L2
jmp wh
L2:add ch,cl
cmp ch,20
ja over
jmp wh
over:
MOV AH,4CH
INT 21H
CODES ENDS
END START