有人可以向我解释这段汇编代码吗?这很简单,但我不知道发生了什么。
code_segment segment
assume cs:code_segment
mov ah, 01h
int 21h
mov ah, 4ch
int 21h
code_segment ends
end
code_segment segment
assume cs:code_segment
repeat: mov ah, 01h
int 21h
jmp repeat
mov ah, 4ch
int 21h
code_segment ends
end
答案 0 :(得分:1)
你确实有两个程序,而不是一个。每个code_segment segment ... code_segment ends
表示一个。将执行哪一个取决于PE header的入口点,因为它们之间没有引用/调用/跳转/交互。
因此,第一个代码段只是使用DOS-interrupt 21h, function 01h - Read char读取字符,然后使用DOS-interrupt 21h, function 4Ch - Exit program退出程序。
第二个代码段是错误的。这是一个使用DOS-interrupt 21h, function 01h - Read char的无限循环读取字符,并且永远不会超出JMP
,因为不存在“退出”#39}。条件/指令。
答案 1 :(得分:0)