Advertisement
Guest User

Untitled

a guest
Oct 30th, 2021
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; СПО Л/р 1  (EXE)
  2. ; Арифметические операции: вычисление D=(A-B)*C
  3. ; Порядок компиляции программы:
  4. ; 1. Ассемблирование: TASM.EXE lab1exe.asm
  5. ;     - в результате создается объектный модуль lab1exe.obj
  6. ; 2. Компоновка: TLINK.EXE lab1exe.obj
  7. ;     - в результате создается EXE-файл, готовый к исполнению
  8. ; 3. Удалить файлы: lab1.obj и lab1.exe
  9. ;---------------------------------------
  10. STACKSG SEGMENT PARA    STACK   ; определение сегмента стека
  11.         DW      128 DUP(?)  ; под стек резервируем 128 слов
  12.         .386
  13. STACKSG ENDS            ; конец сегмента стека
  14. ;---------------------------------------
  15. DATASG  SEGMENT PARA    use16   ; определение сегмента данных
  16. varA DW 6h ; cлово А (знаковый)
  17. varB DW 2h ; слово В (знаковый)
  18. varC DW 2h ; слово С (знаковый)
  19. varD DW 4h ; слово-результат D (знаковое)
  20. varE DW 2h ;
  21.  
  22. DATASG  ENDS            ; конец сегмента данных
  23. ;---------------------------------------
  24. CODESG  SEGMENT PARA use16      ; определение сегмента кода
  25. ; исполнимая часть программы
  26. MAIN    PROC    FAR
  27.         ASSUME  CS:CODESG, SS:STACKSG, DS:DATASG, ES:DATASG
  28.         ; стандартное начало EXE-программы
  29.     MOV AX,  word varB  ; записать в AX значение varB 2
  30.     ;MOV AX, 2h
  31.     MOV BX,  word varC ; записать в BX значение varC 2
  32.     ;MOV BX, 2h;
  33.     IMUL BX ; АХ умножается на ВХ, 4 сохраняется в BX, а в АХ 0
  34.     SUB DX,DX;
  35.     SUB AX,AX
  36.  
  37.  
  38.     MOV AX,   word varD ; присвоим значение AХ = 4
  39.     ;MOV AX, 4h;
  40.     IDIV BX; Поделим AХ на BХ - 4:4 = 1, 1 запишется в AX
  41.  
  42.     MOV BX,  word varA; BX = 6
  43.     MOV CX, word varC; CX = 2
  44.     ;MOV BX, 6h; BX = 6
  45.     ;MOV CX, 2h; CX = 2
  46.     SUB BX, AX; BX = 6-1 = 5
  47.  
  48.     ADD BX,CX; BX = 5+2 = 7
  49.  
  50.     ; стандартное окончание программы
  51.     MOV AX,4C00h
  52.     INT 21h
  53. MAIN    ENDP                ; конец исполнимой части программы
  54. CODESG  ENDS            ; конец сегмента кода
  55.         END     MAIN        ; указывает, что исполнимая часть программы
  56.                 ; начинается с метки MAIN
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement