[Assembly] 계산기(+,-,*) 어셈블리 코드입니다.
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

간단한 연산 프로그램 구현하기


1. CAL64.c의 코드 (C 프로그램)
2. ADD64.s의 코드 (어셈블리 프로그램)
3. SUB64.S의 코드 (어셈블리 프로그램)
4. MUL64.S의 코드 (어셈블리 프로그램)
5. 프로그램 실행
(1) ADD연산 수행 동작
(2) SUB연산 수행 동작
(3) MUL연산 수행 동작

위에서 각각 작성된 어셈블리 프로그램을 하나로 구현하기
1. CAL64.c의 코드 (C 프로그램)
2. ArithmeticS.s의 코드 (어셈블리 프로그램)
3. 프로그램 실행
(1) ADD연산 수행 동작
(2) SUB연산 수행 동작
(3) MUL연산 수행 동작

본문내용

ost significant word of result is %08X\n", res.hi);
printf(" a * b = %08X %08X\n", res.hi, res.lo);
}
}
else
{
puts("Bad operator");
}
return (0);
}
2. ADD64.s의 코드 (어셈블리 프로그램)
AREA |add64$$code|, CODE, READONLY
EXPORT add64
add64
ADDS r1, r1, r3
ADC r0, r0, r2
MOV pc, lr
END
3. SUB64.S의 코드 (어셈블리 프로그램)
AREA |sub64$$code|, CODE, READONLY
EXPORT sub64
sub64
SUBS r1, r1, r3
SBC r0, r0, r2
MOV pc, lr
END
4. MUL64.S의 코드 (어셈블리 프로그램)
AREA |mul64$$code|, CODE, READONLY
EXPORT mul64
mul64
MOV r2, r0
MOV r3, r1
UMULL r1, r0, r2, r3
MOV pc, lr
END
5. 프로그램 실행
(1) ADD연산 수행 동작
(2) SUB연산 수행 동작
(3) MUL연산 수행 동작
위에서 각각 작성된 어셈블리 프로그램을 하나로 구현하기
1. CAL64.c의 코드 (C 프로그램)
#include
typedef struct int64_struct
{
unsigned int hi;
unsigned int lo;
}int64;
__value_in_regs extern int64 arithmetic(int a, int b, int c, int d, int oper);
int main()
{
unsigned a, b, c, d, oper;
int64 res;
printf("Enter operator (0=add, 1=sub, 2=mul)\n");
if(scanf("%x", &oper) != (0 || 1 || 2))
{
puts("Bad operator");
}
else
{
printf("Enter two 64-bit numbers if operator is add or sub\n");
printf("Enter two 32-bit numbers if operator is mul\n");
if(oper == 2) scanf("%x %x", &a, &b);
else scanf("%x %x %x %x", &a, &b, &c, &d);
res = arithmetic(a, b, c, d, oper);
printf("Least significant word of result is %08X\n", res.lo);
printf("Most significant word of result is %08X\n", res.hi);
printf("Result = %08X %08X\n", res.hi, res.lo);
}
return (0);
}
2. ArithmeticS.s의 코드 (어셈블리 프로그램)
AREA |arithmetic$$code|, CODE, READONLY
EXPORT arithmetic
arithmetic
LDR r4, [r13]
CMP r4, #0
BEQ add64
CMP r4, #1
BEQ sub64
CMP r4, #2
BEQ mul64
add64ADDS r1, r1, r3
ADC r0, r0, r2
MOV pc, lr
sub64SUBS r1, r1, r3
SBC r0, r0, r2
MOV pc, lr
mul64UMULL r1, r0, r0, r1
MOV pc, lr
END
3. 프로그램 실행
(1) ADD연산 수행 동작
(2) SUB연산 수행 동작
(3) MUL연산 수행 동작
  • 가격1,000
  • 페이지수8페이지
  • 등록일2010.12.27
  • 저작시기2010.10
  • 파일형식한글(hwp)
  • 자료번호#645172
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니