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的内容保持不变。