彙編實驗(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的內容保持不變。