我有一个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, '$'
如果我移动消息的字符串定义(在下面的代码中),在开头,它不会打印该字符串?是什么原因?
此外,虽然我有指令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
答案 0 :(得分:6)
如果您在开头定义字符串,它将作为代码执行。这会导致崩溃或各种未定义的行为。
从不执行以mov ah,1
开头的指令序列,跳过它。