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

📄 exmem1.asm

📁 大学微型计算机接口技术实验源代码,直接就可以运行,包含了C++和asm代码,比较前面.
💻 ASM
字号:
 ;*-------------------------------------------------------*
 ;*  ExMem1.asm  扩展存储器实验                           *
 ;*  Copyright (c) 2002 by HUST                          *
 ;*	Modify Date	2005.4.10											  *
 ;*  运行步骤:1. 将平台板上存储器电源的跳接开关联上        *
 ;*           2. 程序编译、连接后,进行调试                * 
 ;*           3. 在主程MOV AH,4CH处设置断点,利用Add Watch *
 ;*               命令查看BUF2中的内容是否和BUF1的内容一致  *  
 ;*------------------------------------------------------*

STACK1   SEGMENT STACK
   DB   200 DUP(?)
STACK1   ENDS
DATA    SEGMENT 
BUF1    DB "hello world!"
N       EQU $-BUF1
BUF2    DB N DUP(?) 
RAMBASE EQU 0E100H 
DATA    ENDS
CODE SEGMENT
      ASSUME CS:CODE,DS:DATA,SS:STACK1
START:
     MOV AX,DATA
     MOV DS,AX
     
  ;  WRITERAM           ;写存储器6264RAM
     PUSH SI
     PUSH BX
     PUSH CX
     PUSH AX

     MOV SI,OFFSET BUF1   ;主存BUF1的首址送入SI
     MOV BX,RAMBASE       ;6264RAM存储区基址送BX
     MOV CX,N             ;字节个数送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,N             ;字节个数送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 SIMOV AH

     
     MOV AH,4CH          ;程序退出
     INT 21H

CODE  ENDS
   END START         

⌨️ 快捷键说明

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