1.上机题目:将从键盘输入的
N
个无符号数保存到数
组
DAT
,找出
N
个无符号数中的偶数存放到数组
P
,
统计并在终端上显示数组
P
的数据个数
no
。打印输
出
p
和
no
DAT word n dup (?)
P word n dup (?)
no word
?
要求:
1
、求偶数数组
P
的功能用子程序实现
2
、画主程序及子程序流程图
3
、熟练掌握综合程序设计方法
include Irvine32.inc
.data
dat dword 5 dup (?)
p dword 5 dup (?)
no dword ?
.code
main proc
call set
call found
exit
main endp
set proc
mov ecx,5
mov esi,offset dat
mov edi,0
make:
call readint
mov [esi+edi*4],eax
inc edi
loop make
ret
exit
set endp
found proc
mov ecx,5
mov edi,0
mov edx,0
mov ebx,0
mov esi,offset dat
check: mov eax,[esi+edi*4]
;call writeint
test eax,1
jz creat
inc edi
loop check
cmp ecx,1
jl output1
creat: inc edi
inc edx
mov [p+ebx*4],eax
call writeint
inc ebx
loop check
output1:
mov eax,edx
mov dword ptr no,eax
call crlf
call writeint
exit
found endp
end main
2
、上机题目:将从键盘输入的
N
个有符号数保存到数
组
TAB
,找出
N
个有符号数中绝对值大于
X
的最小
负奇数存放到
Min
单元,如果没有找到则
Min
单元
存放
0
。在终端上显示
Min
的绝对值。
TAB Dword n dup(?)
X Dword xx(
无符号数,自己设定)
Min Dword
?
要求:
1
、求数据
Min
的功能用子程序实现
2
、画主程序及子程序流程图
3
、熟练掌握综合程序设计方法
include Irvine32.inc
.data
tab dword 5 dup (?)
x dword 3
min dword ?
.code
main proc
call set
call found
exit
main endp
set proc
mov ecx,5
mov esi,offset tab
mov edi,0
make:
call readint
mov [esi+edi*4],eax
inc edi
loop make
ret
exit
set endp
found proc
mov ecx,5
mov esi,offset tab
mov edi,-1
mov ebx,0
check1:
inc edi
cmp ecx,1
jl check5
dec ecx
mov eax,[esi+edi*4]
cmp eax,0
jl zh
jmp check1
zh:
neg eax
jmp check2
check2:
cmp eax,x
jg check3
jmp check1
check3:
test eax,1
jg check4
jmp check1
check4:
inc ebx
cmp ebx,1
je first
mov edx,min
cmp eax,edx
jg get
jmp check1
get:
mov min,eax
jmp check1
first:
mov min,eax
jmp check1
check5:
cmp edx,0
jg sc
mov eax,0
mov min,eax
sc:
mov eax,min
call writeint
exit
found endp
end main