현재 위치 - 법률 상담 무료 플랫폼 - 법률 자문 무료 플랫폼 - 어셈블리 언어: 데이터 세그먼트에서 단어 배열에는 N 개의 요소가 있으며, 배열의 음수는 절대값을 구한 후 내림차순으로 정렬되어 하위 프로그램에 의해 구현됩니다.
어셈블리 언어: 데이터 세그먼트에서 단어 배열에는 N 개의 요소가 있으며, 배열의 음수는 절대값을 구한 후 내림차순으로 정렬되어 하위 프로그램에 의해 구현됩니다.
이전 답변:

/ASM _ c/blog/static/2482031132015581

서브루틴을 사용하면 다음과 같이 번거로울 수 있습니다.

데이터 세그먼트

ARRAY 1? DW? 0,? -1,? 2,? 3,? 4,? -5,? 6,? -7,? 8? ,? 9,? -10

세어? EQU? $? -응? 배열 1

ARRAY2? DW? 20? DUP (? ); 절대값을 찾은 후 저장된 새 배열.

LENDW 새 배열 길이?

MSG 1DB? 13,? 10,? 전에? 정렬? :? $'

MSG2DB? 13,? 10,? AfterSort? :? $'

데이터? 끝

코드? 세그먼트

가정? CS:? 야드,? DS:? 데이터

시작:

MOVAX,? 데이터?

MOVDS,? 삭감

모바,? 09H

리드 x,? MSG 1

INT2 1H? 을 눌러 섹션을 인쇄할 수도 있습니다 프롬프트 문자열 표시 MSG 1

레이스? 배열 1

전화하세요? 출력; 출력 배열 서브루틴 OUTPUT 을 호출하여 원시 데이터를 표시합니다.

전화하세요? 절대적으로요? 을 눌러 섹션을 인쇄할 수도 있습니다 Absolute 서브루틴을 호출하여 절대값을 구합니다.

전화하세요? 정렬? 을 눌러 섹션을 인쇄할 수도 있습니다 정렬 서브루틴 sort 를 호출하여 배열을 정렬합니다.

모바,? 09H

리드 x,? MSG2

INT2 1H? 을 눌러 섹션을 인쇄할 수도 있습니다 프롬프트 문자열 MSG2 표시?

레이스? 배열 2

전화하세요? 출력; 출력 배열 하위 프로그램 OUTPUT 을 호출하여 절대값을 구한 후의 데이터를 표시하시겠습니까?

종료:

모바,? 4CH

INT2 1H? 을 눌러 섹션을 인쇄할 수도 있습니다 마스터 프로그램이 DOS 를 반환합니다

을 눌러 섹션을 인쇄할 수도 있습니다 -응?

을 눌러 섹션을 인쇄할 수도 있습니다 하위 프로그램 이름: 정렬

을 눌러 섹션을 인쇄할 수도 있습니다 기능:?

정렬? PROC? 근처?

을 눌러 섹션을 인쇄할 수도 있습니다 여기에 코드를 추가하십시오.

MOVCX,? 숫자를 세다

SHRCX,? 1

DECCX

S0:? 밀어? CX

모프디? 국제 측정 단위계

S 1:? MOVAX,? [디]

CMPAX,? 디? +? 2]

JAS3

XCHG? 엑스,? 디? +? 2]

XCHG? 엑스,? [디]

S3:? ADDDI? 2

순환? S 1

POPCX

순환? S0?

물에 담그면 부드러워진다

정렬? 엔디피

을 눌러 섹션을 인쇄할 수도 있습니다 -응?

을 눌러 섹션을 인쇄할 수도 있습니다 하위 프로그램 이름: 절대

을 눌러 섹션을 인쇄할 수도 있습니다 기능: 절대값 찾기?

절대적으로요? PROC? 가까운

을 눌러 섹션을 인쇄할 수도 있습니다 여기에 코드를 추가하십시오.

레이스? 배열 1

리드 I? 배열 2

MOVCX,? 숫자를 세다

SHRCX,? 1

ABS:

MOVAX,? [서]

CMPAX,? 0

JGEABS2

네게스

ABS2:

모브 [디],? 삭감

ADDSI? 2

ADDDI? 2

순환? 안티 록 브레이크

물에 담그면 부드러워진다

절대적으로요? ENDP?

을 눌러 섹션을 인쇄할 수도 있습니다 -응?

을 눌러 섹션을 인쇄할 수도 있습니다 하위 프로그램 이름: 출력

을 눌러 섹션을 인쇄할 수도 있습니다 기능: 출력 배열

출력? PROC? 근처?

을 눌러 섹션을 인쇄할 수도 있습니다 여기에 코드를 추가하십시오.

모바,? 2

MOVDL,? 13

INT2 1H

MOVDL,? 10

INT2 1H

MOVCX,? 숫자를 세다

SHRCX,? 1

ZH3:

MOVAX,? [서]

CMPAX,? 0

JGEZH0

네게스

MOV[SI],? 삭감

모바,? 2

MOVDL,? -'

INT2 1H

Zh0: 모바x,? [서]

MOVBX,? 10

밀어? CX

MOVCX,? 0

ZH 1:MOVDX,? 0

DIVBX

ADDDL,? 0'

밀어? 고급 (deluxe 의 약자)

INCCX

CMPAX,? 0

JNZZH 1

모바,? 2

ZH2:POPDX

INT2 1H

순환? ZH2

POPCX

MOVDL,? ?'

INT2 1H

ADDSI? 2

순환? ZH3

물에 담그면 부드러워진다

출력? 엔디피

을 눌러 섹션을 인쇄할 수도 있습니다 --

공단

끝 시작