Уравнение на ассемблере z=(x-y)*((x+y)/2) - Assembler
Формулировка задачи:
Листинг программы
- title word ; z=(x-y)*((x+y)/2)
- dat1 segment
- x dw 8000
- y dw 6000
- c dw 2
- z dw ?
- dat1 endS
- cod1 segment
- assume cs:cod1, ds:dat1
- start1: mov ax, dat1
- mov ds, ax
- xor ax, ax
- mov ax, x
- sub ax, y ;x-y
- mov bx, ax ;x-y
- mov ax, x
- add ax, y ; x+y
- mov dx,0
- div c; ((x+y)/2)
- mul bx; (x-y)*((x+y)/2)
- mov z, ax
- mov z+2, dx
- mov ah,4Ch
- int 21h
- cod1 endS
- end Start1
Решение задачи: «Уравнение на ассемблере z=(x-y)*((x+y)/2)»
textual
Листинг программы
- title word ;z=(x-y)*((x+y)/2)
- dat1 segment
- x db 8
- y db 6
- c db 2
- z dw ?
- dat1 endS
- stk1 segment
- db 256 dup(?)
- stk1 ends
- cod1 segment
- assume cs:cod1,ds:dat1,ss:stk1
- start:
- mov ax,dat1
- mov ds,ax
- mov al,x
- sub al,y ;x-y
- mov bl,al ;x-y
- mov al,x
- add al,y ;x+y
- cbw
- idiv c ;(x+y)/2
- imul bl ;(x-y)*((x+y)/2)
- mov byte ptr [z],al
- mov byte ptr [z+2],ah
- mov ah,4Ch
- int 21h
- cod1 endS
- end start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д