Ассемблер и программирование для IBM PC



       

ГЛАВА 23. Прерывания BIOS и DOS - часть 50


TITLE MACRO7 (COM) Проверка директивы IFIDN ; -------------------------------------------- MOVIF MACRO TAG IFIDN <&TAG>,<B>

REP MOVSB EXITM ENDIF IFIDN <&TAG>,<W>

REP MOVSW ELSE ; Не указан параметр B или W, ; по умолчанию принято B REP MOVSB ENDIF ENDM ; -------------------------------------------- 0000 CSIG SEGMENT PARA 'Code' ASSUME CS:CSEG,DS:CSEG,SS:CSEG,ES:CSEG 0100 ORG 100H 0100 EB 00 BEGIN: JMP SHORT MAIN ; ... 0102 MAIN PROC NEAR .LALL MOVIF B + IFIDN <B>,<B>

0102 F3/A4 + REP MOVSB + EXITM MOVIF W + ENDIF + IFIDN <W>, <W>

0104 F3/A5 + REP MOVSW + ENDIF MOVIF + ENDIF + ELSE + ; Не указан параметр B или W, + ; по умолчанию принято B 0106 F3/A4 + REP MOVSB + ENDIF 0108 C3 RET 0109 MAIN ENDP 0109 CSEG ENDS END BEGIN

Ассемблер для IBM PC. Программы. 150

+-----------+ +-----------+ | Основная | | Основная | | программа | | программа | +-----+-----+ +-----+-----+ | | | | +------------+------------+ +------+------+ | | | | | | | | | | +--------+ +--------+ +--------+ +--------+ +--------+ | П/П 1 | | П/П 2 | | П/П 3 | | П/П 1 | | П/П 2 | +---------+ +---------+ +---------+ +----+----+ +---------+ | | +--------+ | П/П 3 | +---------+

Ассемблер для IBM PC. Программы. 151

+---------------------------------------+ | EXTRN SUBPROG:FAR | | MAINPROG: . | | . | | CALL SUBPROG | | . | | . | +---------------------------------------+ | PUBLIC SUBPROG | | SUBPROG: . | | . | | . | | RET | +---------------------------------------+

Ассемблер для IBM PC. Программы. 152

page 60,132 TITLE CALLMULL1 (EXE) Вызов подпрограммы умножения EXTRN SUBMUL:FAR ;----------------------------------------------- 0000 STACKSG SEGMENT PARA STACK 'Stack' 0000 40 [ ???? ] DW 64 DUP(?) 0080 STACKSG ENDS ;----------------------------------------------- 0000 DATASG SEGMENT PARA 'Data' 0000 0140 QTY DW 0140H 0002 2500 PRICE DW 2500H 0004 DATASG ENDS ;----------------------------------------------- 0000 CODESG SEGMENT PARA 'Code' 0000 BEGIN PROC FAR ASSUME CS:CODESG,DS:DATASG,SS:STACKSG 0000 1E PUSH DS 0001 2B C0 SUB AX,AX 0003 50 PUSH AX 0004 B8 ---- R MOV AX,DATASG 0007 8E D8 MOV DS,AX 0009 A1 0002 R MOV AX,PRICE ;Загрузить стоимость 000C 8B 1E 0000 R MOV BX,QTY ; и количество 0010 9A 0000 ---- E CALL SUBMUL ;Вызвать подпрограмму 0015 CB RET 0016 BEGIN ENDP 0016 CODESG ENDS END BEGIN




Содержание  Назад  Вперед