2017-11-12 2 views
0

Wenn ich eine Zeichenfolge wie dieseWie verschiebe ich db zu ds in x86-Assembly?

test db "Test", 0 

Wie kann ich diese bewegen, um die DS Register in x86-Anordnung (zum Beispiel die Zeichen drucken)?
Dies wäre falsch:

mov ax, test 
mov ds, ax 
+0

Welchen Assembler verwenden Sie? – fuz

+1

Wenn Sie MASM verwenden, versuchen Sie 'mov ax, SEG test'. – fuz

+0

Ich benutze Nasm für diese –

Antwort

2

Wenn Ihr Ziel ist es, die Zeichen der Zeichenfolge zu drucken, dann wäre es die von Test versetzt sein, die Sie benötigen würden. Das Setup der DS und ES Segmentregister wäre mit früh in der Programmeinstellung delt gewesen.

segment data 
    test db "Test", 0 

segment code 
    mov  ax, data 
    mov  ds, ax 
    mov  es, ax 

    ... 

    mov  bx, test ;Put offset address of the string in BX register 
    mov  dl, [bx+2] ;Read 3rd character of the string 
    mov  ah, 02h  ;DOS.DisplayCharacter 
    int  21h 
Verwandte Themen