и конца сегмента кода?
Эм. mov ax, cs
CS хранит же в себе адрес начала сегмента кода?
cs - регистр, обозначающий сегмент кода. cs:0000h - адрес начала сегмента
Я прост только азы ассемблера пытаюсь освоить, поэтому сорри, если вопрос глупый, просто в сети вообще не могу найти нормального внятного ответа на вопрос
А вот конец сегмента вообще некорректный термин
А зачем он тебе вообще?
Начало и конец сегмента, имел ввиду
Как я понимаю 0000h это же адрес относительно cs?
От размера сегмента зависит в рилмоде он фиксированный
Это просто адрес, к какому сегментному регистру он относится зависит от контекста
Так а как адрес начальный и конечный тогда определить?
Если тебе дадут адрес состоящий из сегмента и офсета, какой линейный адрес будет им соответствовать?
поставь метки и выведи их адрес (смещение)
Тогда всё плохо, это наверняка объясняли, правда не исключаю, что плохо
КФУ или КАИ?
Не корректный, потому что у ДОС нет жестко фиксированных границ и размеров сегмента
корректный для x86, особенно учитывая, что этот предел можно задавать в защищённом режиме
Ммм мы имеем дело с дос в реальном режиме
в реальном режиме лимит сегмента фиксированный и то только в классическом, на 386 можно делать рилмод с любым пределом
А откуда вылез дос? В исходном вопросе турбо ассемблер. Количество байтов между code segment и code ends. Соответственно, две метки, вычитаем, получаем.
mov ah, 09h int 21h mov ah, 4ch int 21h И где же я увидел дос....
int 21h это прерывание доса
Все неоднозначно, всей правды мы не знаем
я знаю, это не сработает если ты не в досе
Так я ведь не про это говорю, а про то, что сегмент рассматривается в контексте ассемблера, а не ОС.
Вопрос был про конкретный код
Обсуждают сегодня