clc 명령어 : Carry 플래그를 0으로 해제
stc 명령어 : Carry 플래그 1로 셋팅
'언어 > Assembly' 카테고리의 다른 글
0dh,0ah (0) | 2015.12.16 |
---|---|
어셈블리 과제: 32비트 정수 부울 계산기 (0) | 2015.12.05 |
어셈블리 과제: 점수 입력 받아서 점수에 해당하는 등급 출력하는 코드 (0) | 2015.12.05 |
clc 명령어 : Carry 플래그를 0으로 해제
stc 명령어 : Carry 플래그 1로 셋팅
0dh,0ah (0) | 2015.12.16 |
---|---|
어셈블리 과제: 32비트 정수 부울 계산기 (0) | 2015.12.05 |
어셈블리 과제: 점수 입력 받아서 점수에 해당하는 등급 출력하는 코드 (0) | 2015.12.05 |
0dh,0ah
.data
menu BYTE "1. x AND y",0dh,0ah
BYTE "2. x OR y",0dh,0ah
BYTE "3. NOT x",0dh,0ah
BYTE "4. x XOR y",0dh,0ah
BYTE "5. Exit Program",0
문장 띄어쓰기 할 때 사용
명령어 (0) | 2015.12.16 |
---|---|
어셈블리 과제: 32비트 정수 부울 계산기 (0) | 2015.12.05 |
어셈블리 과제: 점수 입력 받아서 점수에 해당하는 등급 출력하는 코드 (0) | 2015.12.05 |
문제:
32비트 정수에 대한 간단한 부울 계산기로 동작하는 프로그램을 작성하시오. 이 프로그램은 사용자에게 다음 리스트에서 선택하도록 요청하는 메뉴를 표시해야 한다.
1. x AND y
2. x OR y
3. NOT x
4. x XOR y
5. Exit program
사용자가 선택하면 수행할 연산의 이름을 표시하는 프로시저를 호출한다. (우리는 다음 연습문제에서 이 연산들을 구현할 것이다.)
INCLUDE Irvine32.inc
.data
menu BYTE "1. x AND y",0dh,0ah
BYTE "2. x OR y",0dh,0ah
BYTE "3. NOT x",0dh,0ah
BYTE "4. x XOR y",0dh,0ah
BYTE "5. Exit Program",0
menu1 BYTE "x AND y",0
menu2 BYTE "x OR y",0
menu3 BYTE "NOT x",0
menu4 BYTE "x XOR y",0
menu5 BYTE "Exit Program",0
str1 BYTE "Select the menu: "
int1 DWORD ?
int2 DWORD ?
.code
main PROC
START:
mov edx,OFFSET menu
call WriteString
call Crlf
call Crlf
mov edx, 0
mov edx,OFFSET str1
call WriteString
call ReadInt
cmp eax, 1
je STATE1
cmp eax, 2
je STATE2
cmp eax, 3
je STATE3
cmp eax, 4
je STATE4
cmp eax, 5
je QUIT
STATE1:
call AND_op
jmp START
STATE2:
call OR_op
jmp START
STATE3:
call NOT_op
jmp START
STATE4:
call XOR_op
jmp START
QUIT:
mov edx,OFFSET menu5
call WriteString
call Crlf
exit
main ENDP
AND_op PROC
mov edx,OFFSET menu1
call WriteString
call Crlf
ret
AND_op ENDP
OR_op PROC
mov edx,OFFSET menu2
call WriteString
call Crlf
ret
OR_op ENDP
NOT_op PROC
mov edx,OFFSET menu3
call WriteString
call Crlf
ret
NOT_op ENDP
XOR_op PROC
mov edx,OFFSET menu4
call WriteString
call Crlf
ret
XOR_op ENDP
END main
명령어 (0) | 2015.12.16 |
---|---|
0dh,0ah (0) | 2015.12.16 |
어셈블리 과제: 점수 입력 받아서 점수에 해당하는 등급 출력하는 코드 (0) | 2015.12.05 |
INCLUDE Irvine32.inc
.data
str1 BYTE "Input the exam grade: ",0
str2 BYTE "Grade: ",0
str3 BYTE 'A','B','C','D','F'
.code
main PROC
Grade:
mov edx, OFFSET str1
call WriteString
call ReadInt
mov ebx,41h
cmp eax,90
jge L1
inc ebx
cmp eax,80
jge L1
inc ebx
cmp eax,70
jge L1
inc ebx
cmp eax,60
jge L1
mov ebx,46h
jmp L1
L1:
mov edx,OFFSET str2
call WriteString
mov eax,ebx
call WriteChar
call Crlf
jmp Grade
main ENDP
END main
90~100 : A등급
80~89 : B등급
70~79 : C등급
60~69 : D등급
0~59 : F등급
명령어 (0) | 2015.12.16 |
---|---|
0dh,0ah (0) | 2015.12.16 |
어셈블리 과제: 32비트 정수 부울 계산기 (0) | 2015.12.05 |