01 訂閱 英文縮寫名是否正確然后(用子程序結構編寫一程序:從鍵盤輸入一個兩位十進制的月份數(01~12),然后顯示出相應的英文縮寫名)

时间:2024-05-20 08:11:57 编辑: 来源:

從鍵盤輸入一個二位十進制的月份數(01-12),然后顯示出相應英文縮寫名。用匯編語言實現,最好有流程圖

自己做了一個C程序,從C轉匯編,希望對你有用:

#include <stdio.h>

#include <stdlib.h>

void main()

{

char mon[12][4];

sprintf(mon[0],"%s", "Jan\0");

sprintf(mon[1],"%s", "Feb\0");

sprintf(mon[2],"%s", "Mar\0");

sprintf(mon[3],"%s", "Apr\0");

sprintf(mon[4],"%s", "May\0");

sprintf(mon[5],"%s", "Jun\0");

sprintf(mon[6],"%s", "Jul\0");

sprintf(mon[7],"%s", "Aug\0");

sprintf(mon[8],"%s", "Sep\0");

sprintf(mon[9],"%s", "Oct\0");

sprintf(mon[10],"%s", "Nov\0");

sprintf(mon[11],"%s", "Dec\0");

int a = getchar()-48;

int b = getchar()-48;

a = a*10 + b;

if(a<=12)

{

printf(mon[a-1]);

}

}

匯編:

push ebp

mov ebp,esp

sub esp,114h

push ebx

push esi

push edi

lea edi,[ebp-114h]

mov ecx,45h

mov eax,0CCCCCCCCh

rep stos dword ptr es:[edi]

mov eax,dword ptr [___security_買粉絲okie (417000h)]

xor eax,ebp

mov dword ptr [ebp-4],eax

mov esi,esp

push offset string "Jan\0" (415A20h)

push offset string "%s" (415820h)

lea eax,[ebp-38h]

push eax

call dword ptr [__imp__sprintf (4182C8h)]

add esp,0Ch

cmp esi,esp

call @ILT+310(__RTC_CheckEsp) (41113Bh)

mov esi,esp

push offset string "Feb\0" (415810h)

push offset string "%s" (415820h)

lea eax,[ebp-34h]

push eax

call dword ptr [__imp__sprintf (4182C8h)]

add esp,0Ch

cmp esi,esp

call @ILT+310(__RTC_CheckEsp) (41113Bh)

mov esi,esp

push offset string "Mar\0" (415A18h)

push offset string "%s" (415820h)

lea eax,[ebp-30h]

push eax

call dword ptr [__imp__sprintf (4182C8h)]

add esp,0Ch

cmp esi,esp

call @ILT+310(__RTC_CheckEsp) (41113Bh)

mov esi,esp

push offset string "May" (415808h)

push offset string "%s" (415820h)

lea eax,[ebp-2Ch]

push eax

call dword ptr [__imp__sprintf (4182C8h)]

add esp,0Ch

cmp esi,esp

call @ILT+310(__RTC_CheckEsp) (41113Bh)

mov esi,esp

push offset string "May\0" (415A10h)

push offset string "%s" (415820h)

lea eax,[ebp-28h]

push eax

call dword ptr [__imp__sprintf (4182C8h)]

add esp,0Ch

cmp esi,esp

call @ILT+310(__RTC_CheckEsp) (41113Bh)

mov esi,esp

push offset string "Jul" (4157B0h)

push offset string "%s" (415820h)

lea eax,[ebp-24h]

push eax

call dword ptr [__imp__sprintf (4182C8h)]

add esp,0Ch

cmp esi,esp

call @ILT+310(__RTC_CheckEsp) (41113Bh)

mov esi,esp

push offset string "Jul\0" (415A08h)

push offset string "%s" (415820h)

lea eax,[ebp-20h]

push eax

call dword ptr [__imp__sprintf (4182C8h)]

add esp,0Ch

cmp esi,esp

call @ILT+310(__RTC_CheckEsp) (41113Bh)

mov esi,esp

push offset string "Aug\0" (4157A8h)

push offset string "%s" (415820h)

lea eax,[ebp-1Ch]

push eax

call dword ptr [__imp__sprintf (4182C8h)]

add esp,0Ch

cmp esi,esp

call @ILT+310(__RTC_CheckEsp) (41113Bh)

mov esi,esp

push offset string "Sep\0" (415A00h)

push offset string "%s" (415820h)

lea eax,[ebp-18h]

push eax

call dword ptr [__imp__sprintf (4182C8h)]

add esp,0Ch

cmp esi,esp

call @ILT+310(__RTC_CheckEsp) (41113Bh)

mov esi,esp

push offse

搜索关键词: