1. 程式人生 > >彙編實驗(8086)——RAM擴充套件實驗

彙編實驗(8086)——RAM擴充套件實驗

1.RAM擴充套件實驗

 

;16位記憶體擴充套件實驗

;實驗連線:

; 儲存器擴充套件單元 CS0 ------- 控制匯流排 BLE

; 儲存器擴充套件單元 CS1 ------- 控制匯流排 BHE

; 儲存器擴充套件單元 MEWR ------ 控制匯流排 MEW

; 儲存器擴充套件單元 MERD ------ 控制匯流排 MER

; 儲存器擴充套件單元 D7~D0 ----- 資料匯流排 D7~D0

; 儲存器擴充套件單元 D15~D8 ---- 資料匯流排 D15~D8

; 儲存器擴充套件單元 A7~A0 ----- 地址匯流排 A7~A0

; 儲存器擴充套件單元 A15~A8 ---- 地址匯流排 A15~A8

;程式功能:

;記憶體單元2000~20FFh填寫指定的資料

 

code    segment

        assume cs:code

 

START   PROC NEAR

        mov bx,2000h    ;儲存器起始地址

        mov cx,128      ;2000H~20FFH共128個位元組

 

WRLOOP: mov [bx],55AAh  ;將資料55AAh寫入儲存器2000H單元

        add bx,2        ;地址+2

        loop WRLOOP     ;地址不到20FF則繼續

 

        MOV AH,4CH

        INT 21H         ;退出

 

START   ENDP

code    ends

        end Start

 

2.RAM擴充套件實驗(將資料從2000H~20FFH移動到1000~10FFH)

 

;16位記憶體擴充套件實驗

;實驗連線:

; 儲存器擴充套件單元 CS0 ------- 控制匯流排 BLE

; 儲存器擴充套件單元 CS1 ------- 控制匯流排 BHE

; 儲存器擴充套件單元 MEWR ------ 控制匯流排 MEW

; 儲存器擴充套件單元 MERD ------ 控制匯流排 MER

; 儲存器擴充套件單元 D7~D0 ----- 資料匯流排 D7~D0

; 儲存器擴充套件單元 D15~D8 ---- 資料匯流排 D15~D8

; 儲存器擴充套件單元 A7~A0 ----- 地址匯流排 A7~A0

; 儲存器擴充套件單元 A15~A8 ---- 地址匯流排 A15~A8

;程式功能:

;記憶體單元2000~20FFh填寫指定的資料

 

code    segment

        assume cs:code

 

START   PROC NEAR

        mov bx,2000h    ;儲存器起始地址

        mov cx,128      ; 2000H~20FFH共128個位元組

 

WRLOOP: mov [bx],55AAh  ; 將資料55AAh寫入儲存器2000H單元

        add bx,2        ;地址+2

        loop WRLOOP     ;地址不到20FF則繼續

 

;將資料從2000H~20FFH移動到1000H~10FFH

              mov di , 1000H   ;目的地址1000H~10FFH

              mov si , 2000H   ;源地址2000H~20FFH

              mov cx , 128     ;共128個位元組

              cld             ;DF=0,地址增量修改

              rep movsb     ;串操作指令

 

        MOV AH,4CH

        INT 21H         ;退出

 

START   ENDP

code    ends

        end Start

3.指令講解

A:CLD指令功能:將標誌暫存器的方向標誌位DF置0,在字串操作中使SI或DI的地址指標自動增加,字串處理由前往後。

B:MOVSB指令功能:字串傳送指令,這條指令按照位元組傳送資料。例如:DS:SI這段地址的N個位元組複製到ES:DI指向的地址,複製後DS:SI的內容保持不變。