목차
1. 간단한 계산 문제
6. 난수의 생성
7. 문자열의 무작위 생성 및 출력
10. 문자열 복사하기
11. 문자열 거꾸로 복사하기
6. 난수의 생성
7. 문자열의 무작위 생성 및 출력
10. 문자열 복사하기
11. 문자열 거꾸로 복사하기
본문내용
mov ds,ax; ds 레지스터에 복사
call Crlf; Crlf 호출 (Crlf : 커서를 다음줄 왼쪽에 위치 시킴)
call Randomize; Randomize 호출 (Randomize : 현재 시간에 따른 난 ; 수발생기의 시드값을 난수로 할당)
mov cx,20; loop 명령을 20번 반복하기 위해 cx에 20 할당
top:
mov eax,101; eax 에 101 할당 , Random_range에 쓰일 범위 저장
call Random_range; Random_range 호출 (Random_range : eax에 무작 ; 위로 정수를 발생)
mov bx,10; 10진수 값을 얻기 위해 bx에 10 할당
call Writeint_signed; Writeint_signed 호출 (Writeint_signed : 부호있는 ; ASCII 형태로 출력)
call Crlf; Crlf 호출 (Crlf : 커서를 다음줄 왼쪽에 위치 시킴)
loop top; cx에 값을 하나 감소시키고 cx값이 0이 아니면 top ; 으로 반복
mov ah,4ch; 프로그램을 중단하고
int 21h; 제어를 운영체제로 넘김
main endp
end main
※ 출력
7. 문자열의 무작위 생성 및 출력
‘A'에서 ’Z'까지의 문자들을 무작위로 추출하여 0으로 끝나는 문자열을 만드는 프로그램을 작성하라. 링크 라이브러리의 Random_range 프로시저를 사용하고, 문자열을 출력하기 위해서 Writestring 프로시저를 사용하라
※ 프로그램 소스
title 4_7
.model small
.stack 100h
.386; 비특권 80386 명령어들의 어셈블을 가능하게 함
.data
.code
extrn Crlf:proc , Random_range:proc , Randomize:proc , Writestring:proc
; 사용할 프로시져들을 선언
main proc
mov ax,@data; 데이타 세그먼트의 주소를
mov ds,ax; ds 레지스터에 복사
call Randomize; Randomize 호출 (Randomize : 현재 시간에 따른 난 ; 수발생기의 시드값을 난수로 할당)
call Crlf; Crlf 호출 (Crlf : 커서를 다음줄 왼쪽에 위치 ; 시킴)
mov cx,5; loop 명령을 5번 반복하기 위해 cx에 5 할당
top:
mov eax,26; eax 에 26 할당 , Random_range에 쓰일 범위 저장 ; (90-65+1)
call Random_range; Random_range 호출 (Random_range : eax에 무작 ; 위로 정수를 발생)
add ax,65; ASCII코드로 출력하기 위하여 65를 더함
mov ah,2; dl내의 문자를 출력
mov dx,ax
int 21h
loop top; cx에 값을 하나 감소시키고 cx값이 0이 아니면 top ; 으로 반복
mov ah,4ch; 프로그램을 중단하고
int 21h; 제어를 운영체제로 넘김
main endp
end main
※ 출력
10. 문자열 복사하기
한 위치에서 다른 위치로 문자열을 복사하는 프로그램을 작성하라. 간접 주소를 사용하고, 복사된 문자열을 출력하라.
string db "Source string",0 ; string to be copied
dest db 80 dup(0) ; destination
※ 프로그램 소스
title 4_10
.model small
.stack 100h
.data
string db "Source string",0 ; 변수 string에 "source string"
dest db 80 dup(0) ; 변수 dest에 메모리 할당
.code
extrn Writestring:proc
; 사용할 프로시저 선언
main proc
mov ax,@data ; 데이타 세그먼트의 주소를
mov ds,ax ; ds 레지스터에 복사
mov di,offset string ; di에 string의 주소값 할당
mov bx,13 ; 문자열의 갯수 13만큼 반복
top:
mov al,[di] ; al에 di의 간접 주소 할당
mov dest[si],al ; si에 al의 저장된 주소 할당
inc di ; di가 다음 주소를 가리키도록 증가
inc si
loop top ; cx가 0이 될때까지 반복
mov dx,offset dest ; dx에 dest의 offset주소 할당
call Writestring ; dx가 지시하는 문자열을 출력
mov ah,4ch ; 프로그램을 중단하고
int 21h ; 제어를 운영체제로 넘김
main endp
end main
※ 출력
11. 문자열 거꾸로 복사하기
문자열을 거꾸로 복사하는 프로그램을 작성하라. 간접 주소를 사용하고 복사된 문자열을 출력하라.
string db "Source string'',0 ; string to be copied
dest db 80 dup(0) ; destination
※ 프로그램 소스
title 4_11
.model small
.stack 100h
.data
string db "Source string",0; 변수 string에 "source string"
dest db 80 dup(0); 변수 dest에 메모리 할당
.code
extrn Writestring:proc
main proc
mov ax,@data; 데이타 세그먼트의 주소를
mov ds,ax; ds 레지스터에 복사
mov di,offset string+12;di에 string의 마지막 주소를 가리키도록 설정
mov cx,13; 문자열의 갯수 13만큼 반복
top:
mov al,[di]; al에 di의 간접 주소 할당
mov dest[si],al; dest 배열에 al의 저장된 주소 할당
dec di; di값을 하나씩 감소
inc si; si값을 하나씩 증가
loop top; cx가 0이 될때까지 반복
mov dx,offset dest; dx에 dest의 offset 주소값 할당
call Writestring; dx가 가리키는 문자열 출력
mov ah,4ch; 프로그램을 중단하고
int 21h; 제어를 운영체제로 넘김
main endp
end main
※ 출력
call Crlf; Crlf 호출 (Crlf : 커서를 다음줄 왼쪽에 위치 시킴)
call Randomize; Randomize 호출 (Randomize : 현재 시간에 따른 난 ; 수발생기의 시드값을 난수로 할당)
mov cx,20; loop 명령을 20번 반복하기 위해 cx에 20 할당
top:
mov eax,101; eax 에 101 할당 , Random_range에 쓰일 범위 저장
call Random_range; Random_range 호출 (Random_range : eax에 무작 ; 위로 정수를 발생)
mov bx,10; 10진수 값을 얻기 위해 bx에 10 할당
call Writeint_signed; Writeint_signed 호출 (Writeint_signed : 부호있는 ; ASCII 형태로 출력)
call Crlf; Crlf 호출 (Crlf : 커서를 다음줄 왼쪽에 위치 시킴)
loop top; cx에 값을 하나 감소시키고 cx값이 0이 아니면 top ; 으로 반복
mov ah,4ch; 프로그램을 중단하고
int 21h; 제어를 운영체제로 넘김
main endp
end main
※ 출력
7. 문자열의 무작위 생성 및 출력
‘A'에서 ’Z'까지의 문자들을 무작위로 추출하여 0으로 끝나는 문자열을 만드는 프로그램을 작성하라. 링크 라이브러리의 Random_range 프로시저를 사용하고, 문자열을 출력하기 위해서 Writestring 프로시저를 사용하라
※ 프로그램 소스
title 4_7
.model small
.stack 100h
.386; 비특권 80386 명령어들의 어셈블을 가능하게 함
.data
.code
extrn Crlf:proc , Random_range:proc , Randomize:proc , Writestring:proc
; 사용할 프로시져들을 선언
main proc
mov ax,@data; 데이타 세그먼트의 주소를
mov ds,ax; ds 레지스터에 복사
call Randomize; Randomize 호출 (Randomize : 현재 시간에 따른 난 ; 수발생기의 시드값을 난수로 할당)
call Crlf; Crlf 호출 (Crlf : 커서를 다음줄 왼쪽에 위치 ; 시킴)
mov cx,5; loop 명령을 5번 반복하기 위해 cx에 5 할당
top:
mov eax,26; eax 에 26 할당 , Random_range에 쓰일 범위 저장 ; (90-65+1)
call Random_range; Random_range 호출 (Random_range : eax에 무작 ; 위로 정수를 발생)
add ax,65; ASCII코드로 출력하기 위하여 65를 더함
mov ah,2; dl내의 문자를 출력
mov dx,ax
int 21h
loop top; cx에 값을 하나 감소시키고 cx값이 0이 아니면 top ; 으로 반복
mov ah,4ch; 프로그램을 중단하고
int 21h; 제어를 운영체제로 넘김
main endp
end main
※ 출력
10. 문자열 복사하기
한 위치에서 다른 위치로 문자열을 복사하는 프로그램을 작성하라. 간접 주소를 사용하고, 복사된 문자열을 출력하라.
string db "Source string",0 ; string to be copied
dest db 80 dup(0) ; destination
※ 프로그램 소스
title 4_10
.model small
.stack 100h
.data
string db "Source string",0 ; 변수 string에 "source string"
dest db 80 dup(0) ; 변수 dest에 메모리 할당
.code
extrn Writestring:proc
; 사용할 프로시저 선언
main proc
mov ax,@data ; 데이타 세그먼트의 주소를
mov ds,ax ; ds 레지스터에 복사
mov di,offset string ; di에 string의 주소값 할당
mov bx,13 ; 문자열의 갯수 13만큼 반복
top:
mov al,[di] ; al에 di의 간접 주소 할당
mov dest[si],al ; si에 al의 저장된 주소 할당
inc di ; di가 다음 주소를 가리키도록 증가
inc si
loop top ; cx가 0이 될때까지 반복
mov dx,offset dest ; dx에 dest의 offset주소 할당
call Writestring ; dx가 지시하는 문자열을 출력
mov ah,4ch ; 프로그램을 중단하고
int 21h ; 제어를 운영체제로 넘김
main endp
end main
※ 출력
11. 문자열 거꾸로 복사하기
문자열을 거꾸로 복사하는 프로그램을 작성하라. 간접 주소를 사용하고 복사된 문자열을 출력하라.
string db "Source string'',0 ; string to be copied
dest db 80 dup(0) ; destination
※ 프로그램 소스
title 4_11
.model small
.stack 100h
.data
string db "Source string",0; 변수 string에 "source string"
dest db 80 dup(0); 변수 dest에 메모리 할당
.code
extrn Writestring:proc
main proc
mov ax,@data; 데이타 세그먼트의 주소를
mov ds,ax; ds 레지스터에 복사
mov di,offset string+12;di에 string의 마지막 주소를 가리키도록 설정
mov cx,13; 문자열의 갯수 13만큼 반복
top:
mov al,[di]; al에 di의 간접 주소 할당
mov dest[si],al; dest 배열에 al의 저장된 주소 할당
dec di; di값을 하나씩 감소
inc si; si값을 하나씩 증가
loop top; cx가 0이 될때까지 반복
mov dx,offset dest; dx에 dest의 offset 주소값 할당
call Writestring; dx가 가리키는 문자열 출력
mov ah,4ch; 프로그램을 중단하고
int 21h; 제어를 운영체제로 넘김
main endp
end main
※ 출력
추천자료
(노인문제) 초고령화 사회 도래에 다른 노인경제 문제의 실태와 문제점 해결방안
저출산 문제의 원인과 문제점을 조사하고 대학생들의 저출산 예방을 위한 방안에 대해 논하시오
[대리인 문제][대리인 이론]대리인 문제, 대리인 이론(대리인이론의 개념, 노동시장에서의 대...
[노인문제][노인복지][고령화사회][노인복지서비스]노인문제와 노인복지(현대 사회의 노인문...
[노인문제][노인복지][고령화][고령화사회][노인][의료보장][노인복지정책]노인문제의 현황과...
저출산과 고령화 문제 - 개념정의, 저출산 문제의 워인과 파생되는 사회문제, 정부의 대응방안
국민연금의 문제점 논의(사각지대문제, 소득재분배문제, 재정문제)및 대처방안 보고서
[양극화현상][양극화]양극화(양극화문제)의 의미, 양극화(양극화문제)의 유형, 양극화(양극화...
사회문제화 된 사례를 선정하여 현황 및 문제점을 제시 하고 실천 가능한 현실적인 대처방안...
아동수학 교육 현장에서 활동을 통한 문제해결 방안에 대해 논의하세요. (활동을 통한 문제해...
2020년 회계원리 청주대 졸업시험 - 객관식 예상문제 (재무회계 70문제, 관리회계 30문제)
[자살문제의 심각성과 해결방안] 자살 공화국 (自殺共和國) - 자살의 실태, 자살문제의 원인,...
[한국사회문제 A형]한국사회에서 청년문제의 핵심, 왜 개개인의 노력만으로 해결할 수 있는 ...
[빈곤문제] 빈곤가족 및 빈곤의 원인 빈곤가족(빈곤가정)의 실태와 문제점 빈곤과 가족구성원...
소개글