Решение выражения x=(155d-c)/(a+b)+c*c - Assembler
Формулировка задачи:
Здравствуйте. Помогите пожалуйста с программой. Надо чтоб число выводило больше 65535 на экран.
text segment 'code' assume cs:text, ds:data myproc proc mov ax, data mov ds, ax lea dx, str1 mov ah, 09h int 21h mov ax,155 imul d mov bx,dx mov cx,ax mov cx,c sub ax,cx mov cx,ax mov ax,a mov bx,b add ax,bx mov bx,ax mov ax,cx idiv bx mov cx,ax mov ax,c imul c add ax,cx call outp mov x, ax lea dx, str2 mov ah, 09h int 21h mov ax, 4c00h int 21h myproc endp outp proc push ax push cx push dx push bx xor cx,cx mov bx, 000Ah cont: xor dx, dx div bx push dx inc cx or ax, ax jnz cont mov ah, 02h next: pop dx add dl, 30h int 21h loop next pop bx pop dx pop cx pop ax ret outp endp text ends data segment a dw 6 b dw 2 c dw 60 d dw 4 x dw ? str1 db 'Решение выражения , x=(155d-c)/(a+b)+c*c', 0Ah, 0Dh, '$' str2 db 0Ah, 0Dh, 'Решение закончено', 0Ah, 0Dh, '$' data ends stack1 segment para stack 'stack' db 128 dup (?) stack1 ends end myproc
Решение задачи: «Решение выражения x=(155d-c)/(a+b)+c*c»
textual
Листинг программы
model tiny .code org 100h start: mov ah,9 lea dx,dbRes int 21h FINIT ; FILD word ptr c FIMUL word ptr c;c^2 ; FILD word ptr e;155; FIMUL word ptr d;155*d FISUB word ptr c;155*d-c ; FILD word ptr a FIADD word ptr b;a+b ; FDIVP; st(1),st(0);(155*d-c)/(a+b) FADDP; st(1),st(0);(155*d-c)/(a+b)+c^2 ; FBSTP dat ; lea si,outdat+9 mov cx,10 std @@01: lodsb aam 10h or ax,'00' xchg ah,al int 29h xchg ah,al int 29h loop @@01 ret ; dbRes db 10,13,'Result:$' a dw 6 b dw 2 c dw 60 d dw 4 e dw 155 outdat label byte dat DT ? db 98h end start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д