Díky za článek - je zajímavé připomenout si, před čím jsem před 30 lety utíkal a proč: jsa odkojen 8bit Atari (Motorola 6502), pod tíhou tabulek instrukcí (a jejich doby trvání!) a adresních režimů se mi málem podlomila kolena. A to jsme se ještě nedostali ani k 386... (Trochu mi to připomíná Z80.)
Nicméně ani tak jste mě nezmátl a na vaši otázku "co by se stalo, kdyby v registru AX byla nula?", odpovídám: "potvrdí se chyba v článku o pár vět později :)". Rozsah počtu opakování této smyčky je ve skutečnosti přesně o jedna větší, tj. 1--2^16. Zaprvé smyčka s podmínkou na konci nemůže nikdy mít 0 opakování a zadruhé právě s AX=0 má pak smyčka přesně 2^16 opakování. V dalším odstavci je už i smyčka s podmínkou na začátku, pro kterou platí 0--2^16-1, nicméně otázka se týká ještě té původní.
Takže děkuju ještě jednou, že mě článek donutil zapojit šedou kůru mozkovou :)
Díky za zpětnou vazbu!
Jinak já jsem 8086 assembler nikdy neměl rád, taky jsem vyrostl na Atárku s pár instrukcemi a ošahal si i 8080 a Z80 (to nebylo tak špatné). Do 8086 toho napatlali strašně moc, včetně ASCII aritmetiky atd. (probereme), což je IMHO naprosto zbytečné.
Ale zase po letech uznávám, že je 8086 pro programátora výzva. Už se tím nemusíme živit a je to koníček. Nějaký RISC (třeba mě napadá MIPS) je v tomto ohledu strašně triviální a evidentně je to dělaný pro překladače, kdežto na 8086 to člověk pořád dokáže napsat lépe (doufám), než překladač :-)
Oproti Z80 byl 8086 assembler vyšší programovací jazyk.
AMD mělo s přechodem na 64bit jedinečnou příležitost zlikvidovat spoustu pohrobků ze starších architektur, pár instrukcí bylo obětováno, ale jinak se zásadně nic nezměnilo.
RISC asm se špatně čte, ale možná je to jen o zvyku.
Za výzvu považuju assembler na Itaniu.