汇编语言-求X的阶乘
时间: 2023-07-11 08:19:18 浏览: 167
以下是汇编语言程序,用于求X的阶乘:
```
section .data
msg db 'Enter a number: '
len equ $-msg
result db 'Factorial is: '
len1 equ $-result
section .bss
x resb 1
section .text
global _start
_start:
;print message
mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx, len
int 80h
;read input
mov eax, 3
mov ebx, 2
mov ecx, x
mov edx, 1
int 80h
;convert input from ASCII to integer
sub byte [x], 30h
;calculate factorial
mov ebx, 1
mov ecx, byte [x]
mov eax, ecx
loop1:
mul ebx
inc ebx
dec ecx
cmp ecx, 0
jne loop1
;convert result from integer to ASCII
mov ecx, eax
mov edx, 0
mov ebx, 10
loop2:
xor edx, edx
div ebx
add dl, 30h
push edx
cmp ecx, 0
jne loop2
;print result
mov eax, 4
mov ebx, 1
mov ecx, result
mov edx, len1
int 80h
printloop:
pop edx
mov eax, 4
mov ebx, 1
mov ecx, edx
mov edx, 1
int 80h
cmp esp, 0
jne printloop
;exit program
mov eax, 1
xor ebx, ebx
int 80h
```
该程序通过读取用户输入的数字,计算其阶乘,并将结果打印到屏幕上。请注意,这是基于 x86 32位架构的 Linux 系统的汇编代码。如果您在其他环境中使用汇编语言,请相应地进行更改。
阅读全文