1

Тема: Допоможіть, терміново

Хто може допомогти, та наглядно розв'язати дану задачу? З мовою знайомий на базовому рівні, тільки почали вивчати. Буду даже вдячний хто відкликнеться допомогти

Прихований текст

http://pic.lg.ua/x/17/79534f/aabd958b.png

2

Re: Допоможіть, терміново

Розв'язати на чому?

3

Re: Допоможіть, терміново

Ой, вибачте, не вказав, моя помилка, на мові Асемблера потрібно написати дану програму. Або наглядно розв'язати, пояснити що і як потрібно робити. Чи ви не про це?

4 Востаннє редагувалося Itari (07.12.2015 15:52:24)

Re: Допоможіть, терміново

Окей. Таке вирішення підійде?

format PE console
entry start

include 'D:\fasmw16726\INCLUDE\win32a.inc'

section '.data' data readable writeable
message db 'Вводь речення:',0
resmsg db 'Останне слово: %s',0
scanffmt db '%100s',0

s db 100 dup(0)
r db 'Russian',0
section '.code' code readable executable

start:

 cinvoke setlocale,1,r

;Просимо ввести стічку
  cinvoke printf,message
;Забираємо її 
  cinvoke gets,s
;Шукаємо її кінчик
  xor eax,eax
  mov edi,s
  repne scasb
;Шукаємо останній пробел
  mov al,' '
  std
  repne scasb
  add edi,2

;Вмводимо з цього пробелу до кінця стрічки
  cinvoke printf,resmsg,edi
  cinvoke getch
  invoke ExitProcess,0
  ret  

section '.idata' import data readable
library kernel,'kernel32.dll',\
    msvcrt,'msvcrt.dll'

import kernel,\
       ExitProcess,'ExitProcess'

import msvcrt,\
       setlocale,'setlocale',\
       printf,'printf',gets,'gets',\
       getch,'_getch'

Це як ідея, вивчи, та зрозумій як оформити такий приклад до твого завдання.

Подякували: snikers.mc, Yola, leofun01, 0xDADA11C74

5

Re: Допоможіть, терміново

Нічугісінько не зрозуміло, але дякую за старання. А можна якось це все перевести в більш простіший код?
Ось я почав робити, але що далі я не знаю, тому що Асемблер для мене це тяжко, його вчать на 3 курсі, а за новою програмою ми вчимо його на 1 курсі. Забув добавити, процесор 8086.

include asmio16.inc

.data
    ; тут розміщуються дані
    ; тут розміщуються інші сегменти
    mes db "The quick brown Fox jumps over a lazy Dog",0

.stack 100h

.code
    ; тут лежить підпрограма
    mov ax, mes
    xor ax, ax
    mov si, mes
    
    
.begin
    ; тут розміщується основний код
    
    
.end

asmio16.inc

6 Востаннє редагувалося Itari (07.12.2015 19:01:11)

Re: Допоможіть, терміново

Забув добавити, процесор 8086.

Хто ж тобі винуват?
Ну теперь будешь знати, що ТЗ треба приводити відразу й точно.
Мій приклад під вінду.
Хоча...

    include asmio16.inc
     
    .data
        ; тут розміщуються дані
        ; тут розміщуються інші сегменти
        mes db "The quick brown Fox jumps over a lazy Dog",0
     
    .stack 100h
     
    .code

    call find
 Виводимо число із AX регістру
ret 0
        
 proc find     
    .begin
        ; тут розміщується основний код
        xor ax,ax
        mov di,mes
       repne scasb  
          mov al,' '
       std
       repne scasb
       add di,2
       mov ax,di
       sub ax,mes
 ret
    .end

Якось так, якщо твій приклад по синтаксису підходить до компілятора, яким ти користуєшся.

7

Re: Допоможіть, терміново

snikers.mc написав:

а за новою програмою ми вчимо його на 1 курсі.

це яка спеціальність?

8

Re: Допоможіть, терміново

КиївОболонь написав:

це яка спеціальність?

Інформатика/Програмування

9

Re: Допоможіть, терміново

snikers.mc написав:
КиївОболонь написав:

це яка спеціальність?

Інформатика/Програмування

Бідна людина ;)
Я наприклад вивчав Pascal на першому курсі.
Хоча тепер ти будеш знати принципи роботи логіки комп'ютера в плані вже справжнього програмування.
Не те що я  :| *HI*

10 Востаннє редагувалося snikers.mc (08.12.2015 18:20:49)

Re: Допоможіть, терміново

Ostapchuk написав:

Бідна людина ;)
Я наприклад вивчав Pascal на першому курсі.
Хоча тепер ти будеш знати принципи роботи логіки комп'ютера в плані вже справжнього програмування.
Не те що я  :| *HI*

Я на першому курсі вивчаю, якусь незрозумілу суміш С та С++, а також паралельно з цим вивчаю незрозумілий для мене Асемблер

11

Re: Допоможіть, терміново

незрозумілий для мене Асемблер

Будеш практикувати - зрозумієш. Там нічого складного - лише писанини забагато. Хотя якщо WinAPI (як у моєму прикладі) підключати, вирішння завданнь буде досить простим.

Подякували: snikers.mc, 0xDADA11C72

12

Re: Допоможіть, терміново

snikers.mc написав:
КиївОболонь написав:

це яка спеціальність?

Інформатика/Програмування

Не КПІ, випадково?

13

Re: Допоможіть, терміново

КиївОболонь написав:

Не КПІ, випадково?

Ні) Кіровоградський Університет ім. В. Винниченка. Раніше випускали учителів інформатики, але потім почали випускати програмістів без права викладання в школах та вузах.

Подякували: 0xDADA11C71

14

Re: Допоможіть, терміново

Я б скоріше не давав вчителям інформатики права програмувати без ліцензії :)

15

Re: Допоможіть, терміново

koala написав:

Я б скоріше не давав вчителям інформатики права програмувати без ліцензії :)

Ви не так зрозуміли, пройшла перекваліфікація, чи якось так, я не знаю, що почали випускати програмістів, а не вчителів. У вчителів були такі предмети: (Інформатика, Математика, Мат. Аналіз, Психологія(чи щось похоже для роботи з дітьми)), а у нас зараз на першому курсі: (Мат.аналіз, Дискретна мат., Архітектура обчислювальних систем, Алгебра та Геометрія, Програмування), а на другому ще беду "системне програмування" і щось звязано з "лінуксом". А ліцензії немає на викладання в школах та вузах.

16

Re: Допоможіть, терміново

Так, часи змінюються. Колись для того, щоб люди зрозуміли жарт, було достатньо просто написати жарт. Тепер вже навіть зі смайликом не розуміють.