2017-01-15 2 views
-1

2つのディレクトリ(dir1とdir2)を読み込み、dir1/dir2ディレクトリを作成する必要があります。 私の質問は:cmp al,13は何をしていますか?私がmov ah,01h,int 21hと書くと、alは私が読んだ文字になり、それはただ1文字(例えば 'a')なので、alと0をどのように比較できるのでしょうか?彼らのASCII文字コードとコード13で表され、検索アセンブリ内のディレクトリ

assume cs:code,ds:data 

data segment 
mesaj1 db 10,13,'First dir $',10,13 
mesaj2 db 10,13,'Second dir $',10,13 
dir1 db 30 dup(?) 
dir2 db 30 dup(?) 
pnf db 10,13,'Path not found.$',10,13 
acd db 10,13,'Acces denied, or pathname already exists.$',10,13 
gata db 10,13,'The directory was created.$',10,13 
data ends 

code segment 
start: 
mov ax,data 
mov ds,ax 

;read the first direcory 
mov ah,09h 
mov dx,offset mesaj1 
int 21h 

mov si,0 
mov ah,01h 
int 21h 
bucla1: 
mov dir1[si],al 
inc si 
int 21h 
cmp al,13     ;HERE 
je sf1 
mov dir1[si],al 
jmp bucla1 
sf1: 
mov dir1[si],0 

;read the second directory 
mov ah,09h 
mov dx,offset mesaj2 
int 21h 

mov si,0 
mov ah,01h 
int 21h 
bucla2: 
mov dir2[si],al 
inc si 
int 21h 
cmp al,13      ;HERE 
je sf2 
mov dir2[si],al 
jmp bucla2 
sf2: 
mov dir2[si],0 

mov ah,3Bh 
mov dx,offset dir1 
int 21h 
jc eroare 

mov ah,39h 
mov dx,offset dir2 
int 21h 
jc er 
mov ah,09h 
mov dx,offset gata 
int 21h 

eroare: 
cmp ax,3 
je pathnotfound 
jmp sf 

pathnotfound: 
mov ah,09h 
mov dx,offset pnf 
int 21h 
jmp sf 

er: 
cmp ax,3 
je pathnotfound 
cmp ax,5 
je accesdenied 

accesdenied: 
mov ah,09h 
mov dx,offset acd 
int 21h 

sf: 
mov ax,4C00h 
int 21h 
code ends 
end start 
+0

'13'(入力)キャリッジリターンのASCIIコードです。そのループは、行末まで入力を読み取ります。 – Jester

答えて

0

文字は21Hをintにあなたの2回目の呼び出しによって返された文字は、キャリッジリターンであるかどうかをテストしているキャリッジリターン

です。そうであれば、ループから抜け出します。そうでなければ、ループを継続して後続の文字を処理します。

mov ah,01h  ; 01h = Read character 
int 21h   ; Call (do read) 
bucla1: 
mov dir1[si],al ; Store result 
inc si   ; Increase si 
int 21h   ; Call again (do read) 
cmp al,13  ; Is carriage return? 
je sf1   ; Yes, jump out of loop 
mov dir1[si],al ; Store result 
jmp bucla1  ; Loop 
sf1: 
mov dir1[si],0 : Null terminate result 

リファレンス:https://en.wikipedia.org/wiki/ASCII

+1

CRはEnterキーで生成されます。 –

関連する問題