[프로그래밍언어]어셈블리(assembly)
- 최초 등록일
- 2006.03.05
- 최종 저작일
- 2005.12
- 11페이지/
한컴오피스
- 가격 1,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
어셈블리어 강의 내용을 정리
목차
없음
본문내용
□ 변수선언
① 자료크기 지시어 : DB(바이트), DW(워드, 2바이트), DD(더블워드, 2워드), DF(FAR워드, 3워드), DQ(QUAD워드, 4워드), DT(10바이트)
② 형식 : 변수이름 자료크기 지시어 초기 값
변수이름 DB 3 DUP (?) → 변수이름 DB ?, ?, ?
변수이름 DB 3 DUP (4, 5) → 변수이름 DB 4, 5, 4, 5, 4, 5
변수이름 DB `A`, `B`, `C`, `D` → 변수이름 DB `ABCD`
□ SHORT 레이블 : 지정한 레이블로 무조건 분기한다. 단, 분기하려는 레이블의 위치가 현재 위치에서 128바이트보다 작은 범위 내에 있을 때만 사용.
□ MOV : C언어와 베이직에서의 `=`나 파스칼에서의 `:=`와 같은 대입을 의미.
□ XCHG 오퍼랜드1, 오퍼랜드2 : 두 오퍼랜드의 값을 교환한다.
□ 주석문 : 주석 문자열 앞에 `;`을 넣는다.
□ CBW : 부호가 있는 바이트형 자료(AL)를 워드형(AX)으로 바꾸는 명령어.
□ CWD : 부호가 있는 워드형 자료(AX)를 더블워드형(DX:AX)로 바꾸는 명령어.
□ ADD 오퍼랜드1, 오퍼랜드2 : 덧셈, 오퍼랜드1 ← 오퍼랜드1 + 오퍼랜드2
□ ADC 오퍼랜드1, 오퍼랜드2 : 부호 있는 덧셈, 오퍼랜드1 ← 오퍼랜드1 + 오퍼랜드2 + 캐리 플래그
□ BCD 연산(10진 보정)
출력을 하기 위하여 BCD 코드로 만드는 작업은 주로 사칙 연산 수행 후에 이루어진다. BCD 코드로 만들어 주는 작업을 하는 명령어들은 AL 레지스터의 값만을 가지고 작업을 하므로 연산의 결과는 항상 AL 레지스터에 담겨야 한다. 상위 4바이트는 0으로 채워져야 하고 하위 4바이트는 9보다 크면 안 된다.(AL 전체의 값이 9보다 크면 안 된다.) 단, 곱셈 명령어만은 제외.
①AAA : 덧셈 연산 이후에 10진수로 변환해 주는 명령어, AL 레지스터에 담겨있는 수를 AX 레지스터에 BCD 코드로 바꾸어 저장한다.
ADD AL, BL → 보정하려는 값은 AL에 저장되어 있어야 한다.
AAA → 10진 보정한다.
②AAS : 뺄셈 연산 이후에 10진 보정을 하는 명령어, 뺄셈 연산 후의 AL 레지스터의 값을 BCD수로 변환해서 AX에 저장한다.
SUB AL, BL
AAS
③AAM : 곱셈 연산 후에 10진 보정하는 명령어, 곱셈 연산 후의 값을 BCD 수로 변환해서 AX에 저장한다.
MUL BL
AAM
참고 자료
에셈블리 프로그래밍 300제
EBS 프로그래밍 언어론