编写一个递归子程序,计算指数函数Xn的值,其中X,n从键盘输入。

weixin_41003946 2018-06-20 04:33:34
求帮忙aaaa,tainanle帮帮忙
...全文
1732 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2018-07-17
  • 打赏
  • 举报
回复
首先你得说你得编译器是什么,masm,nasm,fasm,masn32,gas,他们各自语法都不一样
赵4老师 2018-06-21
  • 打赏
  • 举报
回复
	mov	eax, DWORD PTR _n$[ebp]
add eax, 1
push eax
mov ecx, DWORD PTR _x$[ebp+4]
push ecx
mov edx, DWORD PTR _x$[ebp]
push edx
call ?e@@YANNH@Z ; e
add esp, 12 ; 0000000cH
fmul QWORD PTR -8+[ebp]
$L585:

; 6 : }

pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0
?e@@YANNH@Z ENDP ; e
_TEXT ENDS
PUBLIC _main
PUBLIC ??_C@_05IKCD@?$CFlf?$CFd?$AA@ ; `string'
PUBLIC ??_C@_0M@EFMC@?$CFlg?$FO?$CFd?$DN?$CFlg?6?$AA@ ; `string'
EXTRN __imp__printf:NEAR
EXTRN __imp__scanf:NEAR
; COMDAT ??_C@_05IKCD@?$CFlf?$CFd?$AA@
; File c:\tmp\tmp\err.cpp
CONST SEGMENT
??_C@_05IKCD@?$CFlf?$CFd?$AA@ DB '%lf%d', 00H ; `string'
CONST ENDS
; COMDAT ??_C@_0M@EFMC@?$CFlg?$FO?$CFd?$DN?$CFlg?6?$AA@
CONST SEGMENT
??_C@_0M@EFMC@?$CFlg?$FO?$CFd?$DN?$CFlg?6?$AA@ DB '%lg^%d=%lg', 0aH, 00H ; `string'
CONST ENDS
; COMDAT _main
_TEXT SEGMENT
_x$ = -8
_xn$ = -16
_n$ = -20
_main PROC NEAR ; COMDAT

; 7 : int main() {

push ebp
mov ebp, esp
sub esp, 84 ; 00000054H
赵4老师 2018-06-21
  • 打赏
  • 举报
回复
; File c:\tmp\tmp\err.cpp
CONST SEGMENT
__real@8@3fff8000000000000000 DQ 03ff0000000000000r ; 1
CONST ENDS
; COMDAT ?e@@YANNH@Z
_TEXT SEGMENT
_x$ = 8
_n$ = 16
?e@@YANNH@Z PROC NEAR ; e, COMDAT

; 2 : double e(double x,int n) {

push ebp
mov ebp, esp
sub esp, 72 ; 00000048H
push ebx
push esi
push edi

; 3 : if (n==0) return 1.0;

cmp DWORD PTR _n$[ebp], 0
jne SHORT $L583
fld QWORD PTR __real@8@3fff8000000000000000
jmp SHORT $L585
$L583:

; 4 : if (n>0) return x*e(x,n-1);

cmp DWORD PTR _n$[ebp], 0
jle SHORT $L584
mov eax, DWORD PTR _n$[ebp]
sub eax, 1
push eax
mov ecx, DWORD PTR _x$[ebp+4]
push ecx
mov edx, DWORD PTR _x$[ebp]
push edx
call ?e@@YANNH@Z ; e
add esp, 12 ; 0000000cH
fmul QWORD PTR _x$[ebp]
jmp SHORT $L585
$L584:

; 5 : else return 1.0/x*e(x,n+1);

fld QWORD PTR __real@8@3fff8000000000000000
fdiv QWORD PTR _x$[ebp]
fstp QWORD PTR -8+[ebp]
赵4老师 2018-06-21
  • 打赏
  • 举报
回复
	TITLE	c:\tmp\tmp\err.cpp
.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS ENDS
$$SYMBOLS SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS ENDS
$$TYPES SEGMENT BYTE USE32 'DEBTYP'
$$TYPES ENDS
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS ENDS
; COMDAT ??_C@_05IKCD@?$CFlf?$CFd?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_0M@EFMC@?$CFlg?$FO?$CFd?$DN?$CFlg?6?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ?e@@YANNH@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _main
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
FLAT GROUP _DATA, CONST, _BSS
ASSUME CS: FLAT, DS: FLAT, SS: FLAT
endif
PUBLIC ?e@@YANNH@Z ; e
PUBLIC __real@8@3fff8000000000000000
EXTRN __fltused:NEAR
; COMDAT __real@8@3fff8000000000000000

21,457

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧