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



         

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


0016 CODESG ENDS END BEGIN

Segments and Group: N a m e Size Align Combine Class CODESG . . . . . . . . . . . . .0016 PARA PUBLIC 'CODE' DATASG . . . . . . . . . . . . .0004 PARA NONE 'DATA' STACKSG. . . . . . . . . . . . .0080 PARA STACK 'STACK'

Symbols: N a m e Type Value Attr BEGIN. . . . . . . . . . . . . F PROC 0000 CODESG Lenght=0016 PRICE. . . . . . . . . . . . . L WORD 0002 DATASG QTY. . . . . . . . . . . . . . L WORD 0000 DATASG SUBMUL . . . . . . . . . . . . L FAR 0000 External

page 60,132 TITLE SUBMUL2 Вызываемая подпрограмма умножения ;---------------------------------------------- 0000 CODESG SEGMENT PARA PUBLIC 'CODE' 0000 SUBMUL PROC FAR ASSUME CS:CODESG PUBLIC SUBMUL 0000 F7 E3 MUL BX ;AX-стоимость, BX-количество

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

0002 CB RET ;Произведение в DX:AX 0003 SUBMUL ENDP 0003 CODESG ENDS END SUBMUL

Segments and Groups: N a m e Size Align Combine Class CODESG. . . . . . . . . . . . . 0003 PARA PUBLIC 'CODE'

Symbols: N a m e Type Value Attr SUBMUL. . . . . . . . . . . . .F PROC 0000 CODESG Global Length=0003

LINK IBM Personal Computer Linker Version 2.30 (C) Copyright IBM Corp 1981, 1985 Object Modules: B:CALLMUL2+B:SUBMUL2 Run File: [B:CALLMUL2.EXE]: <return>

List File: [NUL.MAP]: CON Libraries [.LIB]: <return>

Start Stop Length Name Class 00000H 00022H 0023H CODESG CODE <-- Примечание: 1 сегмент кода 00030H 00033H 0004H DATASG DATA 00040H 000BFH 0080H STACKSG STACK

Program entry point at 0000:0000

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

page 60,132 TITLE CALLMUL3 (EXE) Вызов подпрограммы ; для умножения EXTRN SUBMUL:FAR PUBLIC QTY,PRICE ;------------------------------------------------- 0000 STACKSG SEGMENT PARA STACK 'Stack' 0000 40 [????] DW 64 DUP(?) 0080 STACKSD ENDS ;------------------------------------------------- 0000 DATASG SEGMENT PARA PUBLIC 'Data' 0000 0140 QTY DW 0140H 0002 2500 PRICE DW 2500H 0004 DATASG ENDS ;------------------------------------------------- 0000 CODESG SEGMENT PARA PUBLIC '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 9A 0000 ---- E CALL SUBMUL ;Вызвать подпрограмму 000E CB RET 000F BEGIN ENDP




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