ايران ويج

نسخه‌ي كامل: ماشین حساب به زبان اسمبلی
شما هم اكنون متن قالب بندي نشده را مي‌بينيد.مشاهده‌ي نسخه‌ي اصلي
از تون خواهشمندم لطف کنید سورس این برنامه را برام بگذارید
نقل قول :Calculator

PAGE ,132
TITLE CALC
CGROUP GROUP CODESEG
CODESEG SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CGROUP,DS:CGROUP,ES:CGROUP
PUBLIC CALC

ORG 100H

CALC PROC FAR
JMP START

;---------------------------------------------------------------------;
; ;
; DATA AREA ;
; ;
;---------------------------------------------------------------------;

DB 'INTERRUPT NUMBER ='
INT_NUMBER DB 61h

SCREEN_HANDLE DW 0001h

MESSAGE DB 'PEMATH is not resident',13,10
MESSAGE_LEN EQU $-MESSAGE

TAG DB 'PEMATH'
TAG_LEN EQU $-TAG

;---------------------------------------------------------------------;
; ;
; CODE AREA ;
; ;
;---------------------------------------------------------------------;

START:
;---------------------------------------------------------------------;
; TEST FOR PRESENCE OF CALCULATOR ;
;---------------------------------------------------------------------;
SUB AX,AX
MOV ES,AX
SUB BH,BH
MOV BL,INT_NUMBER
SHL BX,1
SHL BX,1
MOV DI,ES:[BX]
MOV ES,ES:[BX+2]
ADD DI,4
LEA SI,TAG
MOV CX,TAG_LEN
REPE CMPSB
JE CALL_CALC
MOV BX,SCREEN_HANDLE
MOV CX,MESSAGE_LEN
LEA DX,MESSAGE
MOV AH,40h
INT 21h
JMP SHORT CALC_EXIT
;---------------------------------------------------------------------;
; CALL CALCULATOR ;
;---------------------------------------------------------------------;
CALL_CALC:
MOV AL,INT_NUMBER
MOV BYTE PTR INT_CODE,AL
DB 0CDh ; INT
INT_CODE:
DB 00h
NOP
NOP

CALC_EXIT:
INT 20h

CALC ENDP

CODESEG ENDS
END CALC
آدرس اصلي