String: db "Hello World"
nonhuman: db 0
move SI,String+4
move ax,[SI]
move [nonhuman],ax
0
A
ответ
0
Звучит как домашнее задание, поэтому нет прямого ответа.
Вы храните байты в памяти с помощью команды MOV. Один аргумент может быть константой, другой должен быть regiater. Вы можете использовать адресацию со смещением, как в [SI + 4]. Регистры Bytelong - это AL/AH, BL/BH и т. Д. AX, BX и такие два байта.
Чтобы загрузить байт из памяти, вы также используете MOV, но ячейка памяти должна быть вторым операндом, а не первым.
Имея это в виду, код идет:
load the replacement value from memory into a byte-sized register
store that register in the string+4 (the position of O)
store that same register in the string+10 (the position of D)
То есть, если ваша задача не заменяет Выходов и d's в произвольной последовательности, а не только в этом. В этом случае вам нужен цикл, вам нужно прочитать байт из строки, сравнить его и заменить условно.
Просьба уточнить, что вы просите. В том, что вы показали, замените AX на AL, потому что иначе MOVE SI, ... будет перезаписана! –