Задание 3. Лабораторная работа № 10 «Программирование арифметических и логических команд»

Лабораторная работа № 10 «Программирование арифметических и логических команд»

Цель лабораторной работы:

– Углубление знаний по структуре и принципам работы процессора

Задание 1.

– Составьте набор команд на ассемблере, для вычисления значение выражения с использованием арифметических команд.

(a+b)*(c+3)/(d-1)

Задание 2.

Скомпилируйте программу/

Задание 3.

Проверьте работу программы в отладчике.

Задание 1

Ход работы:

Turbo Assembler Version 4.1 22/11/11 15:06:36 Page 1

h.ASM

.Muravjev.ASM

1 0000 STACK1 segment stack

2 0000 0200*(??) DB 512 dup(?)

3 0200 STACK1 ends

4 0000 DATA segment

5 0000 0002 a DW 2;

6 0002 0004 b DW 4

7 0004 0005 c DW 5

8 0006 000A d DW 10

9 0008???? e DW?

10 000A DATA ends

11 0000 CODE segment

12 Assume CS:code, DS:DATA, SS:stack1

13 0000 Start:

14 0000 B8 0000s mov AX,DATA

15 0003 8E D8 mov DS,AX

16 0005 A1 0000r mov AX,a

17 0008 03 06 0002r ADD AX,b

18 000C 8B 1E 0004r mov BX,c

19 0010 83 C3 03 ADD BX,3

20 0013 F7 EB imul BX

21 0015 8B 1E 0006r mov BX,d

22 0019 83 EB 01 Sub BX,1

23 001C F7 FB idiv Bx

24 001E A3 0008r mov e,AX

25;завершение программы

26 0021 B8 4C00 mov AX,4c00h

27 0024 CD 21 int 21h

28 0026 CODE ends

29 End Start

_Turbo Assembler Version 4.1 22/11/11 15:06:36 Page 2

Symbol Table

.Muravjev.ASM

Symbol Name Type Value

??DATE Text "22/11/11"

??FILENAME Text "h "

??TIME Text "15:06:36"

??VERSION Number 040A

@CPU Text 0101H

@CURSEG Text CODE

@FILENAME Text H

@WORDSIZE Text 2

A Word DATA:0000

B Word DATA:0002

C Word DATA:0004

D Word DATA:0006

E Word DATA:0008

START Near CODE:0000

Groups & Segments Bit Size Align Combine Class

CODE 16 0026 Para none

DATA 16 000A Para none

STACK1 16 0200 Para Stack

_

Задание 2 Ход работы:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: