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



   Канал телеграм gclub.      

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


000F CODESG ENDS END BEGIN

Segments and Groups: N a m e Size Align Combine Class CODESG . . . . . . . . . . . . 000F PARA PUBLIC 'CODE' DATASG . . . . . . . . . . . . 0004 PARA PUBLIC 'DATA' STACKSG. . . . . . . . . . . . 0080 PARA STACK 'STACK'

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

page 60,132 TITLE SUBMUL Подпрограмма для умножения EXTRN QTY:WORD,PRICE:WORD ;------------------------------------------------- 0000 CODESG SEGMENT PARA PUBLIC 'CODE' 0000 SUBMUL PROC FAR ASSUME CS:CODESG PUBLIC SUBMUL

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

0000 A1 0000 E MOV AX,PRICE 0003 8B 1E 0000 E MOV BX,QTY 0007 F7 E3 MUL BX ;Произведение в DX:AX 0009 CB RET 000A SUBMUL ENDP 000A CODESG ENDS END SUBMUL

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

Symbols: N a m e Type Value Attr PRICE. . . . . . . . . . . . . V WORD 0000 External QTY. . . . . . . . . . . . . . V WORD 0000 External SUBMUL . . . . . . . . . . . . F PROC 0000 CODESG Global Length=000A

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

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

Start Stop Length Name Class

00000H 00019H 001AH CODESG CODE 00030H 00033H 0004H DATASG DATA 00040H 000BFH 0080H STACKSG STACK

PROGRAM entry point at 0000:0000

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

page 60,132 TITLE CALLMULL4 (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 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 A,DATASG 0007 8E D8 MOV DS,AX 0009 FF 36 0002 R PUSH PRICE 000D FF 36 0000 R PUSH QTY 0011 9A 0000 ---- E CALL SUBMUL ;Вызвать подпрограмму 0016 CB RET 0017 BEGIN ENDP 0017 CODESG ENDS END BEGIN




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