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



         

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


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

page 60,132 TITLE EXIMM (EXE) Пример непосредственных операндов ; (Кодируется для ассемблирования, ; но не для выполнения) 0000 DATASG SEGMENT PARA 'Data' 0000 ?? FLD1 DB ? 0001 ???? FLD2 DW ? 0003 DATASG ENDS

0000 CODESG SEGMENT PARA 'Code' 0000 BEGIN PROC FAR ASSUME CS:CODESG,DS:DATASG

; Операции пересылки и сравнения: ; ------------------------------ 0000 BB 0113 MOV BX,275 ;Пересылка 0003 3C 19 CMP AL,H ;Сравнение

; Арифметические операции: ; ----------------------- 0005 14 05 ADC AL,5 ;Сложение с переносом 0007 80 C7 0C ADD BH,12 ;Сложение 000A 1C 05 SBB AL,5 ;Вычитание с заемом 000C 80 2E 000 R 05 SUB FLD1,5 ;Вычитание

; Ротация и сдвиг (только на 1 бит): ; --------------------------------- 0011 D0 D3 RCL BL,1 ;Ротация влево с переносом 0013 D0 DC RCR AH,1 ;Ротация вправо с переносом 0015 D1 06 0001 R ROL FID2,1 ;Ротация влево 0019 D0 C8 ROR AL,1 ;отация вправо 001B D1 E1 SAL CX,1 ;Сдвиг влево 001D D1 FB SAR BX,1 ;Арифм. сдвиг вправо 001F D0 2E 0000 R SHR FLD1,1 ;Сдвиг вправо

; Логические операции: ; ------------------- 0023 24 2C AND AL,00101100B ;AND (регистр) 0025 80 CF 2A OR BH,2AH ;OR (регистр) 0028 F6 C3 7A TEST BL,7AH ;TEST (регистр) 002B 80 36 0000 R 23 OR FLD1,23H ;XOR (память) 0030 BEGIN ENDP 0030 CODESG ENDS END

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

page 60,132 TITLE XCOM1 COM-программа для пересылки и сложения CODESG SEGMENT PARA 'Code' ASSUME CS:CODESG,DS:CODESG,SS:CODESG,ES:CODESG ORG 100H ;Начало в конце PSP BEGIN: JMP MAIN ;Обход через данные ; --------------------------------------------------- FLDA DW 250 ;Определение данных FLDB DW 125 FLDC DW ? ; --------------------------------------------------- MAIN PROC NEAR MOV AX,FLDA ;Переслать 0250 в AX ADD AX,FLDB ;Прибавить 0125 к AX MOV FLDC,AX ;Записать сумму в FLDC RET ;ернуться в DOS MAIN ENDP CODESG ENDS END BEGIN

page 60,132 TITLE EXJUMP (COM) Организация цикла с помощью JMP 0000 CODESG SEGMENT PARA 'Code' ASSUME CS:CODESG,DS:CODESG,SS:CODESG 0100 ORG 100H




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