;Program_4 – Арифметические операции, вариант …
Data SEGMENT ;Открыть сегмент данных
A DB 5Ah ;Инициализировать
B DB 55h ;переменные A, B, C, D, X
C DB 11h
D DB 5
X DW ?
Data ENDS ;Закрыть сегмент данных
Ourstack SEGMENT Stack ;Открыть сегмент стека
DB 100h DUP (?) ;Отвести под стек 256 байт
Ourstack ENDS ;Закрыть сегмент стека
ASSUME CS:Code, DS:Data, SS:Ourstack ;Назначить сегментные
;регистры
Code SEGMENT ;Открыть сегмент кодов
Start: mov AX, Data ;Инициализировать
mov DS, AX ;сегментный регистр DS
xor AX, AX ;Очистить регистр AX
Здесь должны быть команды вычисления
арифметического выражения
movAX, 4C00h ;Завершить программу
int 21h ;с помощью DOS
Code ENDS ;Закрыть сегмент кодов
END Start ;Конец исходного модуля.
model tiny
.code
org 100h
begin: mov ax,A
mov bx,3
mul bx
add ax,48
mov bx,C
mul bx
push ax
mov ax,B
mov cx,D
mul cx
pop cx
sub cx,ax
mov ax,cx
xor dx,dx
div bx
push dx
mov si,10
xor cx,cx
@@01: xor dx,dx
div si
push dx
inc cx
or ax,ax
jnz @@01
@@02: pop ax
or al,'0'
int 29h
loop @@02
@@03: pop dx
or dx,dx
jz @@05
push dx
mov al,'.'
int 29h
@@04: pop ax
or ax,ax
jz @@05
xor dx,dx
mul si
div bx
push dx
or al,'0'
int 29h
inc cx
cmp cx,30;
jnz @@04
pop dx
@@05: xor ax,ax
int 16h
ret
A dw 5Ah
B dw 55h
C dw 11h
D dw 5
end begin
;Program_4 – Арифметические операции, вариант …
Data SEGMENT ;Открыть сегмент данных
A DB 5Ah ;Инициализировать
B DB 55h ;переменные A, B, C, D, X
C DB 11h
D DB 5
X DW ?
Data ENDS ;Закрыть сегмент данных
Ourstack SEGMENT Stack ;Открыть сегмент стека
DB 100h DUP (?) ;Отвести под стек 256 байт
Ourstack ENDS ;Закрыть сегмент стека
ASSUME CS:Code, DS:Data, SS:Ourstack ;Назначить сегментные
;регистры
Code SEGMENT ;Открыть сегмент кодов
Start: mov AX, Data ;Инициализировать
mov DS, AX ;сегментный регистр DS
xor AX, AX ;Очистить регистр AX
model tiny
.code
org 100h
begin: mov ax,A
mov bx,3
mul bx
add ax,48
mov bx,C
mul bx
push ax
mov ax,B
mov cx,D
mul cx
pop cx
sub cx,ax
mov ax,cx
xor dx,dx
div bx
push dx
mov si,10
xor cx,cx
@@01: xor dx,dx
div si
push dx
inc cx
or ax,ax
jnz @@01
@@02: pop ax
or al,'0'
int 29h
loop @@02
@@03: pop dx
or dx,dx
jz @@05
push dx
mov al,'.'
int 29h
@@04: pop ax
or ax,ax
jz @@05
xor dx,dx
mul si
div bx
push dx
or al,'0'
int 29h
inc cx
cmp cx,30;
jnz @@04
pop dx
@@05: xor ax,ax
int 16h
ret
A dw 5Ah
B dw 55h
C dw 11h
D dw 5
end begin
movAX, 4C00h ;Завершить программу
int 21h ;с помощью DOS
Code ENDS ;Закрыть сегмент кодов
END Start ;Конец исходного модуля.
;prog_4.asm Арифметические операции
Data SEGMENT ; Открыть сегмент данных
A DB 15 ;Инициализировать
B DW 150h ;переменные A, B, C, D, X
C DW 5
D DW 4
X DW ?
Data ENDS ;Закрыть сегмент данных
Ourstack SEGMENT Stack ;Открыть сегмент стека
DB 100h DUP (?) ;Отвести под стек 256 байт
Ourstack ENDS ;Закрыть сегмент стека
ASSUME CS:Code, DS:Data, SS:Ourstack ;Назначить сегментные ;регистры
Code SEGMENT ;Открыть сегмент кодов
Start: mov AX, Data ;Инициализировать (1)
mov DS, AX ;сегментный регистр DS (2)
xor AX, AX ;очистить регистр AX (3)
;=====команды вычисления арифметического выражения===========
mov AL,A ;AL:= (A) (4)
mul A ;AX:=A*A (5)
add AX, D ;AX:=(AX) + (D) (6)
cwd ;преобразовать (АХ) в двойное слово (7)
mov BX, C ;BX:= (C) (8)
sub BX,B ;BX:=(BX)-(B) (9)
idiv BX ;делить (DX:AX) на (BX) (10)
;частное в AX, остаток в DX
mov AX, 4C00h ;Завершить программу (11)
int 21h ;с помощью DOS (12)
Code ENDS ;Закрыть сегмент кодов
END Start ;Конец исходного модуля.
;
;model tiny
model small
.code
;
;org 100h
begin: mov ax,@data
mov ds,ax
;
mov ax,A
mul ax
add ax,D
cwd
mov bx,C
sub bx,B
;
;
idiv bx
push dx
or dx,ax
test dx,8000h
jz @@00
push ax
mov al,'-'
int 29h
pop ax
@@00: neg ax
js @@00
mov si,10
xor cx,cx
@@01: xor dx,dx
div si
push dx
inc cx
or ax,ax
jnz @@01
@@02: pop ax
or al,'0'
int 29h
loop @@02
@@03: pop dx
@@000: neg dx
js @@000
or dx,dx
jz @@05
push dx
mov al,'.'
int 29h
@@04: pop ax
or ax,ax
jz @@05
xor dx,dx
mul si
div bx
push dx
or al,'0'
int 29h
inc cx
cmp cx,30;
jnz @@04
pop dx
@@05: xor ax,ax
int 16h
;
mov ax,4C00h
int 21h
;
.data
A dw 15
B dw 150h
C dw 5h
D dw 4
;
.stack 256
end begin
Data SEGMENT
Ourstack SEGMENT Stack
Ourstack SEGMENT Stack 'Stack'
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.