Поправляю Алексея:
Точно так же, как и на других языках. Уменьшить год на единицу, получить целую часть от деления на сто и к результату прибавить единицу.
.386
.model flat, stdcall
option casemap:none
include windows.inc
include kernel32.inc
include msvcrt.inc
includelib kernel32.lib
includelib msvcrt.lib
.stack 100h
.data
tPrompt db 'Введите четырёхзначный номер года: ',0
tError db 'Ошибка! Повторите ввод. ',13,10,0
tResult db '%d век. ',0
fInput db '%d\n',0
Year dd ?
.code
N76070897:
invoke crt_printf,addr tPrompt
invoke crt_scanf,addr fInput,addr Year
cmp Year,1000
jb Error
cmp Year,9999
ja Error
mov eax,Year
dec eax
cdq
mov ecx,100
div ecx
inc eax
invoke crt_printf,addr tResult,eax
invoke crt__flushall
invoke crt_scanf,addr fInput+2
invoke ExitProcess,NULL
Error:
invoke crt_printf,addr tError
jmp N76070897
end N76070897
Как это на ассемблере сделать?