Assembler - Maverick-Shark/retroGuru GitHub Wiki

Ensamblador

https://redelectronica.blogspot.com/2008/01/lenguaje-ensamblador-entrega-1.html https://redelectronica.blogspot.com/2008/01/ensamblador-entrega-2.html

C:\>debug
-a
3902:0100 MOV AX,123
3902:0103
-g 100

Debug

debug < file.scr

MASM

C:\> MASM PROG.ASM;
C:\> LINK PROG.OBJ;
C:\> EXE2BIN PROG.EXE PROG.COM

ASM

   @Echo off
   path=C:\DOS
   :Ask
   Echo Install Mouse Driver (y/n)?
   Reply
   If errorlevel 121 if not errorlevel 122 goto install
   If errorlevel 89 if not errorlevel 90 goto install
   If errorlevel 110 if not errorlevel 111 goto NoMouse
   If errorlevel 78 if not errorlevel 79 goto NoMouse
   goto ask
   :install
   c:\mouse\mouse
   :NoMouse
   cls
   ver
            DEBUG       Executes MS-DOS DEBUG utility
-A 100                  Begin assembling instructions at memory location
100
xxxx:0100   MOV AH,08   Get character input without echo
xxxx:0102   INT 21      Perform MS-DOS service
xxxx:0104   CMP AL,0    Compare AL with zero
xxxx:0106   JNZ 010A    If lead zero, get second code of character
xxxx:0108   INT 21      Perform MS-DOS service
xxxx:010A   MOV AH,4C   Terminate process with return code
xxxx:010C   INT 21      Perform MS-DOS service
xxxx:010E   <ENTER>
-rcx
CX 0000
:e
-n REPLY.COM
-w
Writing 000E bytes
-q
  • Check drives:
-A 100
INT     11h
MOV     CL, 6
SHR     AX, CL
AND     AX, 03
INC     AX
ADD     AL, 30
MOV     DL, AL
MOV     AH, 02
INT     21h
MOV     AX, 4C00
INT     21h
.MODEL TINY
.CODE
ORG 100h
MOV     DX, 61h         ; Puerto C del 8255/FE2010A
IN      AL, DX          ; Leer el puerto
MOV     CL, 6           ; Preparar para desplazar 6 bits
SHR     AX, CL          ; Desplazar bits 7-6 a posición 1-0
AND     AX, 03h         ; Enmascarar solo bits 1-0 (00, 01, 10, 11)
INC     AX              ; Sumar 1 para obtener 1-4 disqueteras
ADD     AL, 30h         ; Convertir a ASCII ('1'-'4')
MOV     DL, AL          ; Preparar para imprimir
MOV     AH, 02h         ; Función DOS: imprimir carácter
INT     21h             ; Imprimir número de disqueteras
MOV     AX, 4C00h       ; Función DOS: terminar programa
INT     21h             ; Salir
⚠️ **GitHub.com Fallback** ⚠️