(o・∇・o)
(o・∇・o)
[微机实验/TD-PITE] 存储器扩展实验+选做实验

说明

按照要求,需要根据开关确定写入 SRAM 的方式。00 为规则字、01 为非规则字、10 为字节,11 为退出。

SRAM 空间从 8000:0000H 开始,通过 D8000:0000 查看内存空间。

分析

通过 8255 连接开关,并从 K1K0 读入数据到寄存器。

代码

;; INPUT RULE
;;    00 == ORDERED
;;    01 == UNORDERED
;;    10 == BYTE
;;    11 == STOP

SSEG SEGMENT STACK
  DW 32 DUP(?)
SSEG ENDS

CODE SEGMENT
ASSUME CS:CODE

START PROC FAR
  MOV AL, 1001000B ;; INIT 8255
  MOV DX, 0614H
  OUT DX, AL

  MOV AX, 8000H ;; SET START OFFSET
  MOV DS, AX

BEGIN_MAIN:
  CALL FAR PTR READ_KEY
  CMP BX, 11B
  JE EXIT
  CALL FAR PTR WRITE_TO
  NOP  ;; BREAK POINT HERE
  JMP BEGIN_MAIN

EXIT:
  MOV AX, 4C00H
  INT 21H
START ENDP

READ_KEY PROC FAR
  MOV DX, 0640H ;; READ FROM 8255
  IN AL, DX

  MOV BL, AL  ;; SET BX
  MOV BH, 00H
  RET
READ_KEY ENDP

;;; PARAM: BX(MODE)
WRITE_TO PROC FAR
  MOV SI, BX
  AND SI, 1B ;; SI = BX & 1 (01 -> 1, 00/10 -> 0)

  MOV AX, 0H
  MOV CX, 10H
LO:
  CMP BX, 10B
  JE BM

  ;; NORMAL MODE
  MOV [SI], AX
  JMP POST

BM:;; BYTE MODE
  MOV [SI], AL
  MOV [SI+1], AH

POST:
  INC AX
  INC SI
  INC SI
  LOOP BM

  RET
WRITE_TO ENDP

CODE ENDS
END START

连线图

结果

00:规则字

01:非规则字

10:字节

11:退出

发表评论

textsms
account_circle
email

(o・∇・o)

[微机实验/TD-PITE] 存储器扩展实验+选做实验
说明 按照要求,需要根据开关确定写入 SRAM 的方式。00 为规则字、01 为非规则字、10 为字节,11 为退出。 SRAM 空间从 8000:0000H 开始,通过 D8000:0000 查看内存空间。 分析 …
扫描二维码继续阅读
2020-09-14