2016-12-11 5 views
2

Я изучаю язык ассемблера, и у меня есть сомнения. Я программирования просто «привет мир» с этим кодом:Вставьте новую сборку строки 8086

.model small 
.stack 
.data 
    message db 'Hello world! $' 
.code 
start: 
    mov dx,@data 
    mov ds.dx 

    lea dx,message 
    move ah,09h 
    int 21h 

mov ax,4c00h 
int 21h 
end start 

Я предполагаю, что message db 'Hello world! $' работает как струна, и теперь мне интересно, если это возможно, чтобы добавить что-то вроде \ п, чтобы сделать вывод в двух строках, например, message db 'Hello\nworld! $'. Это возможно?

+2

Зависит от вашего ассемблера, которого вы не указали. Возможно, вам придется вставить код ascii вручную, если ваш ассемблер не поддерживает escape-стиль '\ n'. – Jester

+0

Это сборка 8086 – Diego

+0

'db 'Hello'' является« удобством »для легкого определения байтов, когда их значения легко определить в кодировке ASCII ... как строки в основном ... Но это то же самое, что и запись' db 72 , 101, 108, 108, 111' => определение пяти байтовых значений (равное «Hello» при просмотре как строка ASCII). Хотя вы редко * хотите * определять нестрочные данные с помощью ASCII-кодирования, вы * можете *. – Ped7g

ответ

2
message db 'Hello world! $' 

Многие монтажники не будут интерпретировать \ п вкладывается в строку.
Большинство сборщиков принимает следующее вставить строку:

message db 'Hello',13,10,'world!',13,10,'$' 

Значение 13 является возврат каретки, а значение 10 является перевод строки.

Смежные вопросы