A simple assembler, display keyboard health scan code and ASCII code

xiaoxiao2021-03-06  40

Stack segment

Stack Segment Para Stack 'Stack'

DW 256 DUP (0)

Tos Label Word

Stack ends

Code segment

Code segment

Assume CS: Code, SS: Stack, DS: Data

PROC Main

Main Proc Far

Mov AX, Stack

Mov SS, AX

Mov SP, Offset TOS

Push DS

XOR AX, AX

Push AX

Again:

MOV AH, 0

INT 16H

MOV BX, AX

CMP Al, 1BH

JZ EXIT

Call binihex

MOV DL, 20H

MOV AH, 2

Int 21h

MOV DL, BL

MOV AH, 2

Int 21h

MOV DL, DH

MOV AH, 2

Int 21h

MOV DL, 0AH

MOV AH, 2

Int 21h

JMP Again

EXIT:

RET

Main endp

PROC BINIHEX

BiniHex Proc

MOV CH, 4

Rotate:

MOV CL, 4

ROL BX, CL

MOV Al, BL

And Al, 0FH

Add Al, 30H

CMP Al, 3ah

JL Print

Add Al, 7

PRINT:

MOV DL, Al

MOV AH, 2

Int 21h

Dec ch

Jnz Rotate

RET

BiniHex Endp

Code ends

End main

转载请注明原文地址:https://www.9cbs.com/read-86084.html

New Post(0)