簡體   English   中英

獲取當前目錄路徑或名稱程序集8086

[英]Get Current Directory path or name Assembly 8086

我已經看到了AH = 47h中斷(int 21h),但是我不能使用它。 我的問題是顯示(在屏幕上打印)目錄名稱。 有人可以幫助我嗎? 你有密碼嗎? 謝謝。

到目前為止,我已經嘗試過了,但是這段代碼顯然行不通

.model tiny

.data

handle   dw ? 

filename db  26        ;MAX NUMBER OF CHARACTERS ALLOWED (25).
         db  ?         ;LENGTH (NUMBER OF CHARACTERS ENTERED BY USER).
         db  26 dup(0) ;CHARACTERS ENTERED BY USER. END WITH CHR(13).

msj      db 'ENTER FILE NAME HERE: $' 

text     db 'text for file'  ;LENGTH = 13.

.code
    org 100h

inizio: 

;DISPLAY MESSAGE.
    mov dx, offset msj
    mov ah, 9
    int 21h      

;REATE FILE.
    mov ah, 47h
    mov dl, 03h
    mov dx, offset filename 
    int 21h

;CAPTURED STRING ENDS WITH CHR(13), BUT TO CREATE FILE WE NEED
;THE FILENAME TO END WITH CHR(0), SO LET'S CHANGE IT.
    mov si, offset filename + 1 ;NUMBER OF CHARACTERS ENTERED.
    mov cl, [ si ] ;MOVE LENGTH TO CL.
    mov ch, 0      ;CLEAR CH TO USE CX. 
    inc cx         ;TO REACH CHR(13).
    add si, cx     ;NOW SI POINTS TO CHR(13).
    mov al, 36d
    mov [ si ], al ;REPLACE CHR(13) BY 0.            

    mov ah,9
    lea dx,filename     ; DISPLAY NAME
    int 21h

;END PROGRAM.
    mov ah, 4ch
    int 21h

end inizio

下一個小程序(用EMU8086制作)僅做兩件事:獲取當前目錄名稱,並顯示它:

.model tiny

.data

directory db 50 dup('$')  ;NECESSARY TO DISPLAY ON SCREEN.

.code

;INITIALIZE DATA SEGMENT.
    mov ax, @data
    mov ds, ax

;GET CURRENT DIRECTORY NAME.
    mov ah, 47h
    mov dl, 0                ;DRIVE, 0 = CURRENT DRIVE.
    mov si, offset directory ;VARIABLE TO STORE DIRECTORY NAME.
    int 21h

;DISPLAY DIRECTORY NAME.
    mov  ah, 9
    mov  dx, offset directory
    int  21h

;WAIT FOR ANY KEY.    
  mov  ah, 7
  int  21h

;END PROGRAM.
    mov ah, 4ch
    int 21h

我擺脫了“ inizio”,因為我們實際上不需要它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM