1.1
DATAS SEGMENT
x db 6
y db 7
z db ?
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
dw 100 dup(0);此处输入堆栈段代码STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
push ds
mov ax,0
push ax
mov ax,datas
mov ds,ax
mov dl,x
add dl,y
mov cl,3
sal dl,cl
sub dl,x
sar dl,1
mov z , dl
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
1.2DATAS SEGMENT
x db 4 dup (0)
y db 4 dup (0)
z db 4 dup (0)
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
dw 100 dup(0);此处输入堆栈段代码STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
mov x,12h
mov [x+1],34h
mov [x+2],56h
mov [x+3],78h
mov bl,78h
mov y,34h
mov [y+1],56h
mov [y+2],87h
mov [y+3],64h
add bl,64h
mov [z+3],bl
mov bl,56h
adc bl,87h
mov [z+2],bl
mov bl,34h
adc bl,56h
mov [z+1],bl
mov bl,12h
adc bl,34h
mov z,bl
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
3
DATAS SEGMENT
array db -3,-2,5,-1,4
x equ $-array
result db ?
DATAS ENDS
STACKS SEGMENT
dw 30h dup(0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS
MOV DS,AX
mov ax,offset result
mov bx,offset array
sub ax,bx
mov cx,ax
mov ax,0
mov dx,0
mov SI,0
mov bx,x
lop1:cmp bl,array[SI]
jg lop2
inc dl
lop2:inc SI
dec cx
cmp ax,cx
jne lop1
mov result,dl
MOV AH,4CH
INT 21H
CODES ENDS
END START
4
4.1
DATAS SEGMENT
index db 10 dup(0)
len equ $-index
DATAS ENDS
STACKS SEGMENT
dw 100 dup(0);此处输入堆栈段代码STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS
MOV DS,AX
mov cx,8
mov index[0],0
mov index[1],1
mov di,1
lop:
inc di
mov dl,index[di-1]
add dl,index[di-2]
mov index[di],dl
loop lop
jmp lop3
lop3:MOV AH,4CH
INT 21H
CODES ENDS
END START
4.2
DATAS SEGMENT
str db '1257a89bc4k'
count db 0
DATAS ENDS
STACKS SEGMENT
dw 100 dup(0);此处输入堆栈段代码STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS
MOV DS,AX
mov cx,12
mov di,-1
lop:
dec cx
cmp cx,0
jz lop3
inc di
mov dl,str[di]
cmp dl,'0'
jb lop2
cmp dl,'9'
ja lop2
jmp lop
jmp lop3
lop2:
inc count
jmp lop
lop3:
MOV AH,4CH
INT 21H
CODES ENDS
END START
5
DATAS SEGMENT
charbuf DB 31H ;开辟的缓冲区DB 0
DB 31H DUP(0)
count1 db 0
count2 db 0
count3 db 0
DATAS ENDS
STACKS SEGMENT
dw 100 dup(0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS
MOV DS,AX
MOV DX,SEG charbuf
MOV DS,DX
MOV DX , OFFSET charbuf
MOV AH,0AH
INT 21H
mov si,1
mov ch,charbuf[si]
inc si
get_key:
mov al,charbuf[si]
cmp al,'0'
jnb shuzi
jmp lop3
shuzi:
cmp al,'9'
jbe lop1
cmp al,'A'
jnb zifu1
jmp lop3
zifu1:cmp al,'Z'
jbe lop2
cmp al,'a'
jnb zifu2
jmp lop3
zifu2:
cmp al,'z'
jbe lop2
jmp lop3
lop1:inc count1 inc si
dec ch
cmp ch,0
jnz get_key
jmp lop4
lop2:
inc count2
inc si
dec ch
cmp ch,0
jnz get_key
jmp lop4
lop3:
inc count3
inc si
dec ch
cmp ch,0
jnz get_key
jmp lop4
lop4:
add count1,30h mov dl,count1 mov ah,02h
int 21h
add count2,30h mov dl,count2 mov ah,02h
int 21h
mov al,count3
add al,30h mov dl,al mov ah,02h int 21h lop5: MOV AH,4CH INT 21H CODES ENDS END START。