Intel x86汇编代码行为问题

gol*_*ean 1 assembly intel

我有一个英特尔汇编x86(16位版本)汇编代码如下所示打印邮件很好.使用扁平汇编程序在Win-7 32位上进行汇编.

ORG 100h
USE16

        mov ah, 09
        mov dx, message
        jmp  Displayit  ;unconditional jump

        mov ah,01
        int 21h

        mov ah,4ch
        int 21h

Displayit:
        int 21h

message db 'Testing assembly jump instruction', 0Ah, '$'
Run Code Online (Sandbox Code Playgroud)
  1. 如果我移动消息的字符串定义(在下面的代码中),在开头,它不会打印该字符串?是什么原因?

  2. 此外,虽然我有mov ah, 01, int 21h保持输出命令提示符/控制台关闭的指令,但它不起作用.控制台刚关闭,然后才能看到打印的消息?

.

ORG 100h
USE16
message db 'Testing assembly jump instruction', 0Ah, '$'

mov ah, 09
mov dx, message
jmp  Displayit  ;unconditional jump

mov ah,01
int 21h
mov ah,4ch
int 21h

Displayit:
    int 21h
Run Code Online (Sandbox Code Playgroud)

Gun*_*iez 6

  1. 如果在开头定义字符串,它将作为代码执行.这会导致崩溃或各种未定义的行为.

  2. mov ah,1从不执行从开始的指令序列,跳过它.