Считать аргументы командной строки из префикса сегмента программы в сборке 8086 - PullRequest
1 голос
/ 26 апреля 2020

Я пишу свою первую программу на ассемблере, используя 16-битную сборку 8086 (MASM 5.00 в DOSBox).

Я пытаюсь прочитать аргументы командной строки из PSP , как предлагается в этом ТАК вопрос :

sti
cld
push ds
pop es

mov ah,09h
mov dx,81h
int 21h

Это выведет аргументы командной строки, если я закончу их $, поэтому:

test param1 param2 param3$

будет print

param1 param2 param3

Я попытался завершить строку, поместив в память знак $ с

xor bx,bx
mov bl,[80h]
mov byte [bx + 81h],'$'

, но последняя строка выдает error A2011: Type illegal in context , Я неправильно понимаю синтаксис?

Моя следующая цель - разделить строку аргумента и сохранить каждый аргумент отдельно для последующего использования (некоторые аргументы являются числовыми, поэтому мне нужно будет также преобразовать их, но я есть идеи о том, как этого добиться).

Есть ли хорошие примеры того, как это сделать? Ресурсы, которые я нашел, либо предназначены для разных архитектур ЦП, либо используют стандартные библиотеки.

...