c 阶乘的代码汇编语言,8086程序实现:如何计算一个数字的阶乘?(汇编编程)...
时间: 2024-03-12 10:47:04 浏览: 23
下面是汇编语言8086实现计算一个数字的阶乘的代码:
```
; 计算阶乘的程序
.model small
.stack 100h
.data
num db 5 ; 数字5
result dw 1 ; 结果初始化为1
.code
main proc
mov ax, @data
mov ds, ax
mov al, num ; 将数字加载到 AL 寄存器中
mov cx, ax
dec cx
; 循环计算阶乘
loop1:
mul cx ; 乘以当前数
dec cx ; 当前数减1
cmp cx, 1
jne loop1
; 结果保存在 DX:AX 寄存器中
mov result, ax
mov ah, 4ch ; 退出程序
int 21h
main endp
end main
```
代码解析:
1. `num db 5` 定义数字 5 存储在数据段中。
2. `result dw 1` 定义结果初始值为 1,存储在数据段中。
3. `mov al, num` 将数字加载到 AL 寄存器中。
4. `mov cx, ax` 将数字赋值给 CX 寄存器,同时减 1,因为阶乘中不包括 0。
5. `mul cx` 乘以当前数。
6. `dec cx` 当前数减 1。
7. `cmp cx, 1` 比较当前数是否为 1。
8. `jne loop1` 如果当前数不为 1,继续循环。
9. `mov result, ax` 将结果保存在数据段中。
10. `mov ah, 4ch` 退出程序。
以上代码的计算结果为 5 的阶乘,即 5! = 120。