⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aexp13.asm

📁 扩展存储器实验 运行步骤:1. 将平台板上存储器电源的跳接开关连上 * * 2. 源程序编译
💻 ASM
字号:
 ;*-------------------------------------------------------*
 ;*  Aexp13.asm  扩展存储器实验                            *
 ;*  Copyright (c) 2004 by HUST                           *
 ;*  运行步骤:1. 将平台板上存储器电源的跳接开关连上         *
 ;*            2. 源程序编译,连接,运行                   * 
 ;*            3. 运行后,在屏幕显示的结果中查看             *
 ;*              BUF2中的内容是否和BUF1的内容一致           *  
 ;*-------------------------------------------------------*

STACK1   SEGMENT STACK
   DB   200 DUP(?)
STACK1   ENDS
DATA    SEGMENT 

prepare      db 'please  turn on the memory power or the programe will not run as you wish!$'
input       db  0ah,0dh,'if you want to quit ,please press Q/q! '
                    db 0ah,0dh,'press other key to copy from buf1 to buf2',0ah,0dh,' $'
inputmess     db 0ah,0dh,'please input buf1:',0ah,0dh,'$'
outputmess db 0ah,0dh,'already copy from BUF1 into BUF2 :'
           
CHGLINE0 DB  0AH,0DH,'BUF1:'

BUF1    DB 255 dup(0)

CHGLINE DB  0AH,0DH,'BUF2:'
BUF2    DB   255  DUP(?) 
 
RAMBASE EQU 0E100H 
buf    db 255                    ;字符缓冲区
       db ?
       db 255 dup(0)


DATA    ENDS
CODE SEGMENT
      ASSUME CS:CODE,DS:DATA,SS:STACK1
START:
     MOV AX,DATA
     MOV DS,AX
         lea dx,prepare
         mov ah,9
         int 21h
l0:  lea dx,input              ;输入提示
     mov ah,9
     int 21h
     mov ah,08h
	    int 21h   
     cmp al,'Q'
     jE   exit
     cmp al,'q'
     je   exit
      lea dx,inputmess
		mov ah,9
		int 21h

          lea dx,buf
      mov ah,10
      int 21h
      lea di,buf+2  

      lea si,buf1
      mov cx,0
next: mov dl,[di]
      inc di
      cmp dl,0dh
      jne aa
      
      jmp end0
aa:   
      
      mov [si],dl
      inc si
      inc cx
      jmp next

      
      
exit: MOV  AH,4CH
      INT 21H

 end0:  mov byte ptr [si],'$'
              inc cx  
       mov  bp ,cx
  ;  WRITERAM           ;写存储器6264RAM
     PUSH SI
     PUSH BX
     PUSH CX
     PUSH AX

     MOV SI,OFFSET BUF1   ;主存BUF1的首址送入SI
     MOV BX,RAMBASE       ;6264RAM存储区基址送BX
     MOV CX,bp             ;字节个数送CX

     MOV DX,303H         ;设置8255工作方式     
     MOV AL,80H          ;10000000B
     OUT DX,AL        
 L1:    
     
     MOV DX,302H          ;从8255的C口
     MOV AL,BH            ;输出地址的高8位
     OUT DX,AL       
     
     MOV DX,301H         ;从8255的B口
     MOV AL,BL           ;输出地址的低8位     
     OUT DX,AL

     MOV DX,303H        ;置写信号为低电平  
     MOV AL,0EH         ;00001110B(置PC7=0)
     OUT DX,AL
     
     MOV DX,300H        ;从8255的A口    
     MOV AL,[SI]        ;输出8位数据
     OUT DX,AL
     
     MOV DX,303H         ;置写信号变为高电平
     MOV AL,0FH          ;00001111B(置PC7=1)
     OUT DX,AL     
     
     INC SI               ;主存地址加1
     INC BX               ;6264RAM地址加1
     LOOP L1              ;未完,继续写
     POP AX
     POP CX
     POP BX
     POP SI

   ; READRAM            ;读存储器6264RAM
     PUSH SI
     PUSH BX 
     PUSH CX
     PUSH AX
     MOV SI,OFFSET BUF2  ;主存BUF2的首址送SI
     MOV BX,RAMBASE       ;6264RAM存储区基址送BX
     MOV CX,bp            ;字节个数送CX
        
     MOV DX,303H          ;设置8255工作方式
     MOV AL,90H           ;10010000B
     OUT DX,AL          
 L2:
     MOV DX,302H          ;从8255的C口
     MOV AL,BH            ;输出地址的高8位
     OUT DX,AL       
     
     MOV DX,301H         ;从8255的B口
     MOV AL,BL           ;输出地址的低8位     
     OUT DX,AL

     MOV DX,303H        ;置读信号为低电平  
     MOV AL,0CH         ;00001100B(置PC6=0)
     OUT DX,AL

     MOV DX,300H        ;从8255A口读数据
     IN AL,DX          
     MOV [SI],AL        ;数据存到BUF2中。 
    
     MOV DX,303H         ;置读信号变为高电平
     MOV AL,0DH          ;00001101B(置PC6=1)
     OUT DX,AL     

     INC SI              ;主存地址加1
     INC BX              ;6264RAM地址加1
     LOOP L2             ;未完,继续读
    
         
     POP AX
     POP CX
     POP BX
     POP SI
 LEA DX,OUTPUTMESS
      MOV AH,9
      INT 21H
        lea dx,chgline
         mov ah,9
          int 21h
       
         jmp l0
     
   
CODE  ENDS
   END START         

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -