組合語言的建立 寫 讀檔案

2021-10-07 09:26:03 字數 2493 閱讀 3628

datas segment

buf1 db 100,?,100 dup(?)

buf2 db 10 dup(?)

file1 db 'abc.txt',00h

f1 dw ? ;存放檔案代號

file2 db 'def.txt',00h

f2 dw ?

error1 db ' error number $

datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov ax,datas

mov ds,ax

mov si,10

;-------建立abc.txt檔案------------

mov ah,3ch

mov cx,00

lea dx,file1

int 21h

jc error;判斷是否出錯

mov f1,ax;存放新建的檔案代號

;-------10號呼叫從鍵盤輸入字串寫到abc.txt中-------

mov ah,0ah

lea dx,buf1

int 21h

mov ah,40h

mov cl,[buf1+1]

lea dx,buf1+2;偏移位址

mov bx,f1;檔案代號

int 21h

jc error

;---------abc關了再開-----------------

; mov ah,3eh;關

; mov bx,f1

; int 21h

; jc error

; mov ah,3dh;開

; lea dx,file1

; mov al,00

; int 21h

; jc error

; mov f1,ax

;-------移動檔案指標,或者先把abc.txt關了再用3dh開啟把指標移到檔案頭,沒有這一步就會從上次輸入完畢的地方讀-----

xor cx,cx

xor dx,dx

mov bx,f1

mov al,0

mov ah,42h

int 21h

jc error

;-------讀abc.txt檔案--------------

mov ah,3fh

mov bx,f1

mov cx,10;讀前十個

lea dx,buf2;放到緩衝區

int 21h

jc error

;-------在螢幕輸入讀到的內容--------

xor cx,cx

mov cl,10

mov si,0

l3: mov dl,buf2[si]

inc si

mov ah,02h

int 21h

loop l3

;-------建立def.txt檔案------------

mov ah,3ch

mov cx,00

lea dx,file2

int 21h

jc error;判斷是否出錯

mov f2,ax;存放新建的檔案代號

;--------複製到def.txt檔案-----------

mov ah,40h

mov bx,f2

xor cx,cx

mov cl,10

lea dx,buf2

int 21h

jc error

jmp exit

;--------顯示錯誤返回**-----------

error:

xor dx,dx

xor cx,cx

l1: div si

push dx

inc cx

cmp ax,0

jnz l1

l2: pop dx

mov ah,2

add dl,30h

int 21h

loop l2

xor dx,dx

xor ax,ax

lea dx,error1

mov ah,09h

int 21h

;-------關閉檔案---------

mov ah,3eh

mov bx,f1

int 21h

mov ah,3eh

mov bx,f1

int 21h

exit:

mov ah,4ch

int 21h

codes ends

end start

讀王爽老師的組合語言有感

今天不知為何又查了一下王爽老師的 組合語言 遙想起當時學習這本書的經歷,不得不讚嘆與本書對知識組織加工的藝術。相比之下,我覺得大家應該都有這樣的一些經歷 拿到一本書,信誓旦旦要把這本書學下來,可惜的是中途不是覺得似懂非懂 大腦混亂,要麼就是覺得難度過高 信心受挫 半途而廢,亦或是覺得圖書枯燥乏味,不...

高階組合語言和低階組合語言的差別

80 86不支援像 if while repeat for break breakif try 這樣的機器指令。hla只要一遇到這些語句,就把他們編譯成乙個或多個真正的機器的指令 本書的目的 the art of assembly language 在於傳授你低階組合語言,談論第一章的高階結構只是實...

組合語言的開始

title add and subtract include irvine32.inc data captionq byte survey completed 0 questionmsg byte thank your for completing the survey.byte 0dh,0ah b...