terça-feira, 28 de setembro de 2010

Semana Assembly - Os Cinco Furiosos (Parte 2)

Mais um dia para a nossa semana Assembly, e no cardápio de hoje veremos o interessante comando SWITCH, originalmente ele era um dos Anões da Branca de Neve, porém foi tentar uma carreira solo e ficou perdido em comandos das linguagens C, C++, Ruby e Java com a sua quase eterna briga com o IF. Sua estrutura envolve um menu de opções que podem ocorrer, tal como:

switch (i) {
  case 1: faça 1
  case 2: faça 2
  case 3: faça 3
  default: se não fizer nenhuma delas
}

Em linguagem Assembly existe algumas maneiras bem diferentes de implementar este comando, porém prefiro a mais padrão que pode ser aplicada a todas as máquinas:

include 'emu8086.inc'
#MAKE_COM#
ORG 100h

.data
  value dd 3

.code

cmp value, 3


jge default
  cmp value, 0
je part0
  cmp value, 1
je part1
  cmp value, 2
je part2

part0:
  print 'Parte 0', 0
  jmp fim
part1:
  print 'Parte 1', 1
  jmp fim
part2:
  print 'Parte 2', 2
  jmp fim
default:
  print 'Default', 0
fim:

RET

Acredito que não exista o menor mistério nestes comandos, já que vimos todas essas instruções anteriormente.

Abraços e até a próxima
Fernando Anselmo

0 comentários:

Postar um comentário