У меня есть следующий код:Assembler мы вопрос
mov ax,@data
mov ds,ax
Почему я не могу писать так же, как это?
mov ds,@data
Все источник:
.MODEL small
.STACK 100h
.DATA
HelloMessage DB 'Hello, world',13,10,'$'
.CODE
.startup
mov ax,@data
mov ds,ax
mov ah,9
mov dx,OFFSET HelloMessage
int 21h
mov ah,4ch
int 21h
END
Спасибо!
+1 Вы также можете сказать, что причина неспособности изменить 'ds' с помощью одной из стандартных команд' mov' состоит в том, что в большинстве инструкций зарезервировано только 3 бита для кодирования регистра назначения, а это топор, bx, cx, dx, si, di, sp, bp уже используют все доступные возможности. Но это немного упростит ситуацию. –
Да, это конкретное дизайнерское решение, чтобы инструкции были небольшими. – starblue
В этом случае, когда в него входит 'mov ds, ax'? Я уверен, что это 'mov' с' ds' как регистр назначения;) У вас есть веский аргумент, и я просто играю! – Lazarus