본문 바로가기

IT/Assembler7

1부터 5까지의 합 1~5까지 합 .model small .stack 100h .data .code main proc mov ax, @data mov ds, ax mov es, ax xor ax, ax xor cx, cx mov cl, 5 L1: add al, cl loop L1 .exit main endp end main 2014. 12. 19.
어셈블리어 곱하기 소스 .286 ; 286명령어를 사용할수 있게 한다.SSEG SEGMENT STACK ; EXE파일을 만들 것이므로 스택설정한다. DB 256 DUP(?) SSEG ENDS;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::DSEG SEGMENT BUFFER DB ?, " * ", ?, " = ", ?, ?, 0DH, 0AH, '$' DIVNUM DB 10 ; 결과값이 10을 넘을 경우 두부분으로 나누기 위해 10을 넣는다. DSEG ENDS ; 데이터 세그먼트 영역. ; 화면에 출력할 포맷임. ; 하지만 문제는 세번째 ?부분은 ?, ?가 되어야 한다. ; 연산결과는 십진수로 2자리이고 바이트 1개 .. 2014. 12. 19.
[ASM]구구단중 2단의 결과값 구하는 예제소스 ; 문제 2단... ; 2 ; 4 ; 6 ; 8 ; 10 ; 12 ; 14 ; 16 ; 18 .286 SSEG SEGMENT STACK DB 256 DUP(?) SSEG ENDS DSEG SEGMENT NUM DB 2 ; 2단의 단수 선언 RESULT DB ?, ?, 0DH, 0AH, '$' DIVNUM DB 10 DSEG ENDS CSEG SEGMENT 'CODE' ASSUME CS:CSEG, SS:SSEG, DS:DSEG MAIN PROC FAR PUSH DS PUSH 0 MOV AX, DSEG MOV DS, AX MOV BL, 0 ; 증가하는 값의 초기화 MOV CX, 9 ; 9번반복 L1: ADD BL, 1 ; 1씩 증가하는 값 MOV AL, BL ; 곱하는 값은 AL 그래서 BL의 값을 넣어준다.. 2014. 12. 19.
[ASM]구구단 1단 출력 .286 SSEG SEGMENT STACK DB 256 DUP(?) SSEG ENDS DSEG SEGMENT BUFFER DB ?, " * ", ?, " = ", ?, 0DH, 0AH, '$' DSEG ENDS CSEG SEGMENT 'CODE' ASSUME CS:CSEG, SS:SSEG, DS:DSEG MAIN PROC FAR PUSH DS PUSH 0 MOV AX, DSEG MOV DS, AX MOV BH, 1 ; 출력하고자 하는 단수 MOV CX, 9 ; 루프 반복 횟수 MOV BL, 0 ; 곱해지는 수 초기화(1,...,9) L1: ADD BL, 1 MOV AL, BL MUL BH ; AX = BH(단수) * AL(각 단 내에서 곱해지는수) MOV BUFFER, BH ; (1) * (2) = (3.. 2014. 12. 19.
반응형