吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 843|回复: 4
收起左侧

[求助] 为啥下面的程序会多拷贝一个nop指令?

[复制链接]
iMarkWu 发表于 2022-8-16 19:37
代码是完成王爽的《汇编语言》第十二章的实验的代码。
代码功能是编写0号中断程序,并将其安装在以0000:0200H为起始位置的空间内。

问题:在do0第一行jmp指令后并没有nop指令,为啥通过安装程序拷贝到相应空间后会多出一条nop指令?

[Asm] 纯文本查看 复制代码
assume cs:code

code segment

; 以下为安装程序
main:   mov ax,cs
        mov ds,ax
        mov si,offset do0
        mov ax,0
        mov es,ax
        mov di,200h
        mov cx,offset do0end - offset do0
        cld
        rep movsb

        ; 设置中断向量表
        mov ax,0
        mov es,ax
        mov word ptr es:[0*4],200h
        mov word ptr es:[0*4+2],0

        mov ax,4c00h
        int 21h
;=========================具体的0号中断处理程序========================
do0:        jmp do0start
            db "Divide error!"
do0start:   mov ax,cs
            mov ds,ax
            mov si,203h

            mov ax,0b800h
            mov es,ax
            mov di,12*160+36*2

            mov cx,13
        s:  mov al,[si]
            mov es:[di],al
            inc si
            add di,2
            loop s
            MOV AX,4c00h
            INT 21h
do0end:     nop
;==================================================================

code ends
end main


image.png
image.png
image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

苏紫方璇 发表于 2022-8-17 00:00
估计是编译器添加的,可以看下编译好的程序,应该也会有这个nop

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
iMarkWu + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| iMarkWu 发表于 2022-8-17 17:40
苏紫方璇 发表于 2022-8-17 00:00
估计是编译器添加的,可以看下编译好的程序,应该也会有这个nop

直接看了一下编译好的do0.exe见附件图,发现的确是编译期间编译器自己添加的。谢谢!
那么汇编器为啥要在程序里面添加指令呢?汇编语言在我理解就是将机器码和助记符对应起来,编译器做个翻译就好啦,没必要再向其中添加指令呀,是为了对齐还是其它什么原因吗?
image.png

点评

这个我就不太清楚了,我感觉可能是jmp后边跟了一段数据,汇编器可能要特殊处理一下,做一个分隔  详情 回复 发表于 2022-8-17 20:50
苏紫方璇 发表于 2022-8-17 20:50
iMarkWu 发表于 2022-8-17 17:40
直接看了一下编译好的do0.exe见附件图,发现的确是编译期间编译器自己添加的。谢谢!
那么汇编器为啥要 ...

这个我就不太清楚了,我感觉可能是jmp后边跟了一段数据,汇编器可能要特殊处理一下,做一个分隔
 楼主| iMarkWu 发表于 2022-8-19 22:05
苏紫方璇 发表于 2022-8-17 20:50
这个我就不太清楚了,我感觉可能是jmp后边跟了一段数据,汇编器可能要特殊处理一下,做一个分隔

哦哦,好吧,感谢提供的思路
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 06:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表