0
글쎄, 화면에 다른 데이터 세그먼트의 두 문자열을 인쇄해야하는 프로그램을 작성하고 있습니다. 그리고 내 프로그램에 32 비트 addresing 모드를 사용해야합니다.두 개의 데이터 세그먼트와 386 코드가 어셈블리에 있습니다.
.386
assume cs:codeSegment, ds:dataSeg1, es:dataSeg2, ss:stackSeg
; STACK SEGMENT DECLARATION
stackSeg segment STACK 'stack'
db 100h dup(?)
stackSeg ends
; DATA SEGMENTS DECLARATION
dataSeg1 segment 'data'
s1 db 'First$'
s1_size dd 6
dataSeg1 ends
dataSeg2 segment 'data'
s2 db 'Second$'
s2_size dd 7
dataSeg2 ends
; Code segment
codeSegment segment 'code'
start:
mov ax, dataSeg1
mov ds, ax
mov ax, dataSeg2
mov es, ax
mov ah, 9
mov edx, offset s1 ; need string from DS
int 21h
mov edx, offset s2 ; need string from ES
int 21h
mov ax, 4C00h
int 21h
codeSegment ends
end start
정확한 세그먼트에서 문자열 오프셋을 전달하는 방법을 이해할 수 없습니다. 아무도 내가 뭘 잘못 설명 할 수 있을까?
감사합니다.