这是我学习汇编时的写的小例子,记之于此!

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
      掉不满足条件的排列。
2.程序源代码:

#include "stdio.h"
#include "conio.h"
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++) /*以下为三重循环*/
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
getch();
}

---------------------------------------------------------------------------------------------------------------------------------

.386
.model flat,stdcall
option casemap:none

include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include msvcrt.inc
includelib msvcrt.lib
include masm32.inc
includelib masm32.lib

.data
iA dd 0
iB dd 0
iC dd 0
iCount dd 0
msg db '[%02d] %d%d%d', 13, 10, 0

.code
CalFunc proc
LOOPA:
inc iA
cmp iA, 5
jae LOOP_END
mov iB, 0
LOOPB:
inc iB
cmp iB, 5
jae LOOPA
mov iC, 0
LOOPC:
inc iC
cmp iC, 5
jae LOOPB
mov eax, iB
cmp iA, eax
jz LOOPC
mov eax, iC
cmp iA, eax
jz LOOPC
mov eax, iC
cmp iB, eax
jz LOOPC
inc iCount
invoke crt_printf, addr msg, iCount, iA, iB, iC
jmp LOOPC
LOOP_END:
ret
CalFunc endp


.code
start:
invoke CalFunc
invoke crt_getchar
invoke ExitProcess, NULL
end start

汇编之题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?..._汇编