- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
cmp bl,1
je France_jmp
cmp ax,380
je Bulgaria_jmp
cmp ax,383
je Slavonia_jmp
cmp ax,385
je Croatia_jmp
mov bx,400
mov dx,440
call IfAnd
cmp bl,1
je Germany_jmp
jmp next_s
USA_jmp: jmp USA
Grinford_jmp: jmp Grinford
France_jmp: jmp France
Bulgaria_jmp: jmp Bulgaria
Slavonia_jmp: jmp Slavonia
Croatia_jmp: jmp Croatia
Germany_jmp: jmp Germany
next_s:
mov bx,450
mov dx,459
call IfAnd
cmp bl,1
je Japan_jmp
mov bx,460
mov dx,469
call IfAnd
cmp bl,1
je Russia_jmp
cmp ax,471
je Taiwan_jmp
cmp ax,474
je Estonia_jmp
cmp ax,475
je Litvia_jmp
cmp ax,477
jmp next_ss
Japan_jmp: jmp Japan
Russia_jmp: jmp Russia
Taiwan_jmp: jmp Taiwan
Estonia_jmp: jmp Estonia
Litvia_jmp: jmp Latvia
Lithuania_jmp: jmp Lithuania
Philippines_jmp: jmp Philippines
Ukraine_jmp: jmp Ukraine
Moldova_jmp: jmp Moldova
Hongkong_jmp: jmp Hongkong
Britain_jmp: jmp Britain
Greece_jmp: jmp Greece
Cyprus_jmp: jmp Cyprus
Macedonia_jmp: jmp Macedonia
Malta_jmp: jmp Malta
Ireland_jmp: jmp Ireland
Belgium_jmp: jmp Belgium
Portugal_jmp: jmp Portugal
Iceland_jmp: jmp Iceland
Denmark_jmp: jmp Denmark
next_ss:
je Lithuania_jmp
cmp ax,480
je Philippines_jmp
cmp ax,482
je Ukraine_jmp
cmp ax,484
je Moldova_jmp
cmp ax,489
je Hongkong_jmp
Прога для проверки правильности штрих-кодов по контрольной сумме и определение страны-производителя. Про таблицы перехода и near-адресацию конечно в те времена еще не догадывался, только начинал учить асм.
PS: А интерфейс у нее ничего такой был для ассемблера, правда слизал с NU: http://habrastorage.org/storage1/e4efe022/903c7848/d99f7f4f/33d1ed16.png
Я достаточно близко приблизился к вашему уровню языка, чтобы Вам было понятно?
Наглядный пример неправильного выбора инструмента. Надо было брать тасм и навсегда забыть о jump out of range, поскольку он сам, где надо, сгенерирует связку Jx/JMP. Либо можно было воспользоваться макросами, они как раз идеально подходят для таких случаев.
И эта, мой камент был к коду, который явно писался в те времена, когда фасма не было даже в планах, а тасм полностью эмулировал масм, плюс имел свои примочки.
По lib-файлам не вижу особых проблем. Есть утилитки coff2omf и omf2coff, вполне рабочие. Но, судя по хэлпам, в вижене эти утилиты не нужны, поскольку link.exe прекрасно понимает формат omf и может самостоятельно сконвертировать его в родной coff.
он никуда не девался
другое дело, что застрять в С++ Быдлере в 2010 году - символично
> Изменений практически ноль
> Речь о новой версии
мне кажется или кое-кто хуйню пишет?
В копирайте указан 2010-й год и новая версия - 5.4. Что не так? Или тебе известны изменения, что появились с версии 5.3? Ну так колись, а не выёбывайся.
Нифига себе какие нубы наглые пошли...
Дрочите на комманды процессора и такты?
Не дрочу, а чинно мастурбирую, а если серьезно - прикалывает размеры и быстрота кода.
Это плохо. Вставать на девушек не будет. Только на такты CPU.
> подменять команды старших процессоров
Зачем!?
Чтоб быстрее работало
> подменять команды старших процессоров
Чтоб скомпилировать под старые процессоры без новых инструкций, не переписывая руками новые инструкции в старые. Чтоб не писать два раза код под новые и старые процессоры.
Я думаю, что чувак, который пишет на асме, и сам до этого додумается...
Да и прокладки на джампах тоже сомнительная хуйня, которая может сломать код.
Хм, т.е. я смогу переключение в лонг мод сконпелировать под 8086? И юзать там 64-битные регистры? Охуенно же, пойду ставить тасм.
- Как, опять?
Kosovo je Srbija
обидели соседей очепяткой