글
'어셈블리' 카테고리의 다른 글
call,ret (0) | 2014.08.08 |
---|---|
어셈블리 stst (0) | 2014.08.07 |
루프 (0) | 2014.07.31 |
20140728 어셈블리 ++연산 --연산 (0) | 2014.07.28 |
20140725 어셈블리 (0) | 2014.07.25 |
call,ret (0) | 2014.08.08 |
---|---|
어셈블리 stst (0) | 2014.08.07 |
루프 (0) | 2014.07.31 |
20140728 어셈블리 ++연산 --연산 (0) | 2014.07.28 |
20140725 어셈블리 (0) | 2014.07.25 |
1.Jump 명령어(Page 162)
1-1) Example 1
1번 cmp 명령어에 따라 total -100 으로 total 과 100을 비교 2번 jge : 크거나 같으면 jump ... 조건 성립 할 경우 addValue라벨로 jump 한 경우 : addValue를 실행 jump 안 한 경우 : cmp 명령어에 따라 cx-10 으로 cx와 10을 비교 3번 jne : 같지않다면 Jump ... cx와 10이 같지 않으면 endAddCheck 라벨로 Jump jump를 안 한 경우에는 addValue라벨을 실행 cmp를 묶어서 C언어로 설명을 하면 if( 100 <= total | 10 = cx ) 의 조건식으로 해석 |
1-2) Example 2
1번 cmp 명령어에 따라 cx - 0 이므로 cx 와 0을 비교 2번 jng : 크지 않을 경우 Jump ... 조건이 성립 할 경우 endCheckch Jump를 안 할 경우 계속 진행 3번 cmp 명령어로 비교 al값과 backspace의 아스키 코드값을 비교 4번 jne : 같지 않다면 Jump 이것 또한 위에꺼와 같이 조건이 성립 되지 않은 경우 종료 시키지 않고 밑의 dec count 를 수행 cmp명령어를 C언어로 바꿔 말하면 if( 0 < cx & al = backspace ) 의 조건식으로 해석 |
1-3) Example 3
1번 처음 수를 입력 하고 여러번 비교 할 수 있게 변수에 값을 저장 그리고 입력한 값을 숨기기 위해 화면을 clear 몇번만에 맞추는지를 세는 count를 0으로 초기화 2번 count 수를 늘리면서 입력한 아스키 코드값을 정수로 변환 2번 밑의 cmp 명령어로 서로의 비교를 하면서 target(처음 입력한 수) 와 두번 ,세번 입력한 수 와 비교를 하여 처음 입력한 수를 맞추는 프로그램 서로 비교하였을때 같지 않다면 ifLess 라벨로 Jump ( jne ) 여기서 값이 만약 target보다 수가 크다면 jnl(적지않다면) 5번으로 Jump ... 6번을 실행하면서 수를 비교하여 untilmatch 라벨로 이동하여 Match 될 때까지 무한 루프 만약 Match가 되면 N Or n 을 눌리지 않는 이상 다시 시작 N Or n 을 눌리면 종료!! |
2. Implementing Loop Structures (Page 172)
2-1)Example
number에 들어 있는 수와 eax(1)수를 비교한다. jnle ( 적지 않거다 같으면 ) 조건이 성립이 되면 endWhileLE 라벨로 그렇지 않다면 body 에서 eax의 값을 늘리면서 number와 비교 cx를 +1 해주면서 몇번만에 나오는지 횟수를 알 수 있음 |
2-2).Example
값을 입력 받아 tally의 변수에 값을 대입 edx = sum 의미하고 ,bx = count 로 지정 . 각각 초기화를 시킴 tally 와 bx를 비교한 뒤 숫자를 입력하여 합을 edx에 저장 그러면서 bx에 +1을 함 tally의 수만큼 수를 입력하고 그 수들의 합을 구하는 프로그램 |
3.For Loops in Assembly Language (Page 186)
어셈블리 stst (0) | 2014.08.07 |
---|---|
어셈블리 push&pop (0) | 2014.08.01 |
20140728 어셈블리 ++연산 --연산 (0) | 2014.07.28 |
20140725 어셈블리 (0) | 2014.07.25 |
어셈블리 (0) | 2014.07.23 |
비주얼 베이직에서 컴파일 해보면 ++연산자와 --연산자를 add,와 sub를 사용하였다.
어셈블리 stst (0) | 2014.08.07 |
---|---|
어셈블리 push&pop (0) | 2014.08.01 |
루프 (0) | 2014.07.31 |
20140725 어셈블리 (0) | 2014.07.25 |
어셈블리 (0) | 2014.07.23 |
RECENT COMMENT