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


          

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


Ассемблер для IBM PC. Программы. 39
INT 10H RET Q20CURS ENDP CODESG ENDS END BEGIN
Ассемблер для IBM PC. Программы. 84
TITLE EXDWMUL - Умножение двойных слов CODESG SEGMENT PARA 'Code' ASSUME CS:CODESG,DS:CODESG,SS:CODESG ORG 100H BEGIN: JMP SHORT MAIN ; --------------------------------------------- MULTCND DW 3206H ;Элементы данных DW 2521H MULTPLR DW 6400H DW 0A26H PRODUCT DW 0 DW 0 DW 0 DW 0 ; --------------------------------------------- MAIN PROC NEAR ;Основная процедура CALL E10XMUL ;Вызвать 1-е умножение CALL Z10ZERO ;Очистить произведение CALL F10XMUL ;Вызвать 2-е умножение RET MAIN ENDP ; Умножение двойного слова на слово: ; ----------------------------------------------- E10XMUL PROC MOV AX,MULTCND+2 ;Умножить правое слова MUL MULTPLR ; множимого MOV PRODUCT+4,AX ;Записать произведение MOV PRODUCT+2,DX
MOV AX,MULTCND ;Умножить левое слово MUL MULTPLR ; множимого ADD PRODUCT+2,AX ;Сложить с полученным ранее ADC PRODUCT,DX RET E10XMUL ENDP ; Перемножение двух двойных слов: ; -------------------------------------------- F10XMUL PROC MOV AX,MULTCND+2 ;Слово-2 множимого MUL MULTPLR+2 ; * слово-2 множителя MOV PRODUCT+6,AX ;Сохранить результат MOV PRODUCT+4,DX
MOV AX,MULTCND+2 ;Слово-2 множимого MUL MULTPLR ; * слово-1 множителя ADD PRODUCT+4,AX ;Сложить с предыдущим ADC PRODUCT+6,DX ADC PRODUCT,00 ;Прибавить перенос
MOV AX,MULTCND ;Слово-1 множимого MUL MULTPLR+2 ; * слово-2 множителя ADD PRODUCT+4,AX ;Сложить с предыдущим
Ассемблер для IBM PC. Программы. 85
ADC PRODUCT+6,DX ADC PRODUCT,00 ;Прибавить перенос MOV AX,MULTCND ;Слово-1 множимого MUL MULTPLR ; * слово-1 множителя ADD PRODUCT+2,AX ;Сложить с предыдущим ADC PRODUCT,DX RET F10XMUL ENDP ; Очистка области результата: ; ---------------------------------------- Z10XMUL PROC MOV PRODUCT,0000 MOV PRODUCT+2,0000 MOV PRODUCT+4,0000 MOV PRODUCT+6,0000 RET Z10XMUL ENDP
CODESG ENDS END BEGIN
Ассемблер для IBM PC. Программы. 86
page 60,132 TITLE EXDIV (COM) Пример операций DIV и IDIV CODESG SEGMENT PARA 'Code' ORG 100H BEGIN: JMP SHORT MAIN ; --------------------------------------------- BYTE1 DB 80H ;Data items BYTE2 DB 16H WORD1 DW 2000H WORD2 DW 0010H WORD3 DW 1000H ; --------------------------------------------- MAIN PROC NEAR ;Основная процедура CALL D10DIV ;Вызов подпрограммы DIV CALL E10IDIV ;Вызов подпрограммы IDIV MAIN ENDP ; Примеры с командой DIV: ; --------------------------------------------- D10DIV PROC MOV AX,WORD1 ;Слово / байт DIV BYTE1 ; остаток:частное в AH:AL MOV AL,BYTE1 ;Байт / байт SUB AH,AH ; расширить делимое в AH DIV BYTE3 ; остаток:частное в AH:AL

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