王爽汇编语言3实验八的一个地址计算问题

如图所示为实验八的程序内容图片说明
经过如下操作后S处的机器码变为EBF6(s2处的机器码为EBF6)
图片说明
然后进入debug模式可以看到
图片说明
我的疑问是图片中的jmp 0000是如何计算出来的?是由什么计算出来的?机器码EBF6的含义是IP后退10字节,汇编语言的指令读取顺序是先让指令进入指令缓存器,然后(IP)=(IP)+指令的长度,可是我们在读取之前并不知道JMP 后面具体的指令,只知道机器码,是它读取机器码后再回过头来计算该具体指令吗?还是说有什么样子的操作呢?

jmp

1个回答

第一遍,将汇编翻译成机器码;对于 jmp xxxx , 这些xxxx 在第二遍扫描的时候已经知道了各个标签和jmp指令的距离,会把xxxx填进去

justin_bkdrong
枫舞的季节 回复root_CSDN: 是编译器做的
大约 2 年之前 回复
root_CSDN
root_csdn 可是这个是在程序中改变的机器码,像这样的第一遍翻译成机器码,然后第二遍再填入XXXX,是会动态进行的吗?还是说是编译器做的操作?
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
王爽的《汇编语言》实验3的问题:
assume cs:codesgrncodesg segmentrn mov ax,2000hrn mov ss,axrn mov sp,0rn add sp,4rn pop ax------->debug跟踪到此时,出现:Command Prompt-debug t1.exern pop bx NTVDM CPU遇到无效指令rn push ax CS:0000 IP:0077 OP:f0 37 05 12 02rn push bx 选择“关闭”终止应用程序rn pop axrn pop bxrn mov ax,4c00hrn int 21hrncodesg endsrnendrnrnOS:WIN2K MASM5.0rn刚学汇编,请大家说说为什么。rn谢谢rn
汇编语言王爽实验
汇编语言王爽的实验实验报告,需要等童鞋可以下载~
汇编语言_王爽汇编语言_王爽汇编语言_王爽汇编语言_王爽汇编语言_王爽
汇编语言_王爽汇编语言_王爽汇编语言_王爽汇编语言_王爽汇编语言_王爽
[王爽][汇编语言](3)
汇编语言 王爽著 经典之作 共3卷 当前第3卷
王爽《汇编语言第三版》实验四(3)
题目:下面的程序是将mov ax,4cooh之前的指令复制到内存0:200处,补全程序,实现上述功能 分析:(1)mov ax,4c00h之前的程序都保存在什么地方?-------------答:CS寄存器里保存着程序,默认CS:0000.所以是将CS:0000~CS:XXXX的内容保存到0:200处            (2)怎么判断CS中代码段的长度?------------------...
《汇编语言》王爽 P88 实验3
《汇编语言》王爽 P88 实验3 Mac系统配置这些蛮麻烦的: 下载个DOSBOX,再下载debug,在DOSBOX中把debug挂到C盘去吧 比如我想把air下面的debug文件挂成C盘,就括号中这条命令: (mount c /Users/air/debug),当然你也可以放其他位置,取其他的名字,只要后面的目录对就可以; 下载edit.exe 和masm都放到debug这个文件中...
王爽《汇编语言》.王爽《汇编语言》.王爽《汇编语言》.
王爽《汇编语言》.王爽《汇编语言》王爽《汇编语言》..
汇编语言王爽汇编语言王爽汇编语言王爽
汇编语言王爽汇编语言王爽汇编语言王爽汇编语言王爽汇编语言王爽汇编语言王爽汇编语言王爽汇编语言王爽汇编语言王爽汇编语言王爽汇编语言王爽汇编语言王爽
王爽《汇编语言》实验七
assume cs:codesg data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995' dd 16,22,3...
汇编语言 实验12 王爽
分析:实验12要实现0号中断处理程序,在屏幕中间显示 divide error后返回dos 1,字符串要放在不会被其他数据覆盖并且处理程序能时刻找到的位置,比如处理程序内,这样安装后程序才能找到字符串 2,ds:[si]指向字符串首地址,al保存字符,ah保存属性(红色) 3,es:[di]指向屏幕中间,ax作为输出数据 4,因为返回dos所以用21号中断而不用iret 程序: st...
王爽汇编语言实验代码
此归档文件包含汇编语言(王爽)实验七及其之后的实验代码,其中以e开头为实验要求代码,以t开头为测试代码,Course Design为课程设计。 --by ster
王爽汇编语言实验十
题目如下:rn名称:show_strrn功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。rn参数:(dh)=行号(取值范围0-24),(dl)=列号(取值范围0-79),(cl)=颜色,ds:si指向字符串的首地址rn返回:无rn应用举例:在屏幕的8行3列,用绿色显示data段中的字符串。rnassume cs:coderndata segmentrn db 'Welcome to masm!',0rndata endsrncode segmentrnstart: mov dh,8rn mov dl,3rn mov cl,2rn mov cl,2rn mov ax,datarn mov ds,axrn mov si,0rn call show_strrnrn mov ax,4c00hrn int 21hrnshow_str: :rn :rn :rncode endsrnend startrn提示:rn 子程序入口参数是屏幕的行号列号,在子程序内部转换为显存地址rnrnrnrn[color=#FF0000]以下是我写的程序,编译和运行都能通过,可是结果不正确,一直找不出哪儿出现了逻辑错误。(注:不需要给我标准答案,我需要知道的是我错在哪)rnassume cs:code,ds:data,ss:stackrndata segmentrn db 'Welcome to masm!',0rndata endsrnstack segmentrn dw 16 dup(0)rnstack endsrncode segmentrnstart: mov dh,8rn mov dl,3rn mov cl,2rn mov cl,2rn mov ax,datarn mov ds,axrn mov si,0rn call show_strrnrn mov ax,4c00hrn int 21hrnshow_str:rn push dxrn push axrn push bxrn push esrn push sirn push cxrn sub dh,1 ;将行号改为7行rn mov al,dh rn mov ah,0rn mov bx,0a0h ;乘以每行160个字符将得到第8行的起始地址rn mul bxrn add ax,0b800h ;加上显存的起始地址就是将写入的段地址rn sub dl,1 ;列号同样减一得到第三列的起始位置rn mov dh,0rn add ax,dxrn mov dl,clrn mov es,axrn s: mov cl,[si]rn mov ch,0rn jcxz okrn mov es:[si],clrn mov es:[si+1],dlrn add si,2rn jmp short srn ok:pop cxrn pop sirn pop esrn pop bxrn pop axrn pop dxrn retrncode endsrnend startrnrn [/color]
王爽《汇编语言》实验16
实验结果 代码如下 assume cs:code stack segment db 128 dup (0) stack ends code segment start: mov ax,stack mov ss,ax mov sp,128 push cs pop ds mov ax,0 mov es,ax mov s
汇编语言王爽实验九
实验题目和原理见书本(汇编语言王爽 第3版)(188~189): 代码: ;在屏幕上以不同背景或字体颜色显示'I Love Huihui ' assume cs:code,ss:stack,ds:data data segment db 'I love Huihui ' db 00000010B,00100100B,01110001B data ends stack segmen
实验11 - 汇编语言(王爽)
将以0结尾的字符串中的小写字母转变为大写字母; Name: letterc ; Function: Converts character c in the string end with 0 to its uppercase equivalent if c is a lowercase letter and has an uppercase equivalent ; Parameter:ds:si
《汇编语言》王爽——实验九
丫的!这是个残次品啊!留个底,等明儿想清楚了发个完整版assume cs:code, ds:data, ss:stack stack segment dw 0,0,0,0,0,0,0,0 stack endsdata segment db 'welcome to masm!' db 02h,24h,71h data endscode segme
王爽《汇编语言》实验17
assume cs:code code segment start: ;----------install int7ch mov ax,code mov ds,ax mov si,offset int7ch mov ax,0 mov es,ax mov di,200h mo...
王爽汇编语言 实验4
编程,向内存0:200~0:23F依次传送数据0~63(3FH)。程序中只能使用9条指令,9条指令中包括”mov ax, 4c00h"和"int 21h"。 include io.inc .model small .stack .data .code .startup mov ax,...
王爽汇编语言实验10
王爽汇编语言实验10
王爽 汇编语言 十七章实验
安装新的int 7ch中断例程,实现通过逻辑扇区号对软盘进行读写。
王爽《汇编语言》实验9
assume cs:code,ds:data data segment db 'welcome to masm' data ends code segment start: mov ax,data mov ds,ax mov bl,0A0h mov ax,0B800h ;段地址0B800h读入es中 mov es,ax mov si,0 mov cx,15 ;
王爽汇编语言 实验12
;********************************************* ;编写程序,使得在除法溢出时,在屏幕中显示字符串 ;”divide error!”然后返回dos ;********************************************* assume cs:code, ss:stackstack segment db 128 dup(
masm5.0汇编语言实验 王爽
王爽书上汇编语言实验用的工具masm5.0
王爽 汇编语言实验7
将部分数据写入table格式的表格中 数据如下:   格式如下: 代码如下: assume ds:data,cs:code,ss:table data segment     db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984'     db '1985','1986','1987','1...
王爽汇编语言 实验8
assume cs:codesg codesg segment mov ax,4c00H int 21H start: mov ax,0 s: nop nop mov di,offset s ; 把s的地址存入di m...
王爽汇编语言 实验四`
下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。rnrnassume cs:codernrncode segmentrnrn mov ax,code ;code为所填写的数据rnrn mov ds,axrnrn mov ax,0020hrnrn mov es,axrnrn rnrn mov bx,0rnrn mov cx,18h ;18h为所填写的数据rnrns: mov al,[bx]rnrn mov es:[bx],alrnrn inc bxrnrn loop srnrn rnrn mov ax,4c00hrnrn int 21hrnrncode endsrnrnendrnrn
王爽 汇编语言 实验七
汇编语言实验七 assume cs:codesg,ds:data,es:table data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995' ;以上是表示21年的21个字符串 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 ;以上是表示21年公司总收的21个dword型数据
王爽《汇编语言》实验7
王爽《汇编语言》实验7 寻址方式在结构化数据访问中的应用 做课程设计1要用这个,但是还没做,就做了…………
王爽 汇编语言 实验5
我照着书上敲了一遍,可是编译的时候报错:rnE:\MASM5~1.0\MASM>masm ex05_01;rnMicrosoft (R) Macro Assembler Version 5.00rnCopyright (C) Microsoft Corp 1981-1985, 1987. All rights reservedrnrnex05_01.ASM(13): error A2105: Expected: instruction or directivernrn 49198 + 448866 Bytes symbol space freernrn 0 Warning Errorsrn 1 Severe ErrorsrnrnE:\MASM5~1.0\MASM>rnrn源代码如下:rnassume cs:code,ds:data,ss:stackrndata segmentrn dw 0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987Hrndata endsrnstack segmentrn dw 0,0,0,0,0,0,0,0rnstack endsrncode segmentrnstart:rn mov ax,stackrn mov ss,axrn mov sp,16rn move ax,datarn mov ds,axrn push ds:[0]rn push ds:[2]rn pop ds:[2]rn pop ds:[0]rn mov ax,4c00hrn int 21hrncode endsrnend start
王爽《汇编语言》实验15
assume cs:code stack segment db 128 dup (0) stack ends code segment start: mov ax,stack mov ss,ax mov sp,128 ;--------------------set adtess push cs pop ds mov si,o...
汇编语言王爽汇编语言王爽汇编语言王爽汇编语言王爽
这是王爽先的最新版的汇编语言,适合初学者,内容易懂,比喻生动
汇编语言-王爽汇编语言-王爽
汇编语言-王爽 汇编语言-王爽 汇编语言-王爽
王爽汇编语言电子书 王爽的汇编语言
王爽的汇编语言,最适合汇编初学者的书籍~~
王爽《汇编语言》.王爽《汇编语言》.
王爽《汇编语言》.王爽《汇编语言》.王爽《汇编语言》.王爽《汇编语言》.
王爽 汇编语言 王爽 汇编语言
王爽 汇编语言 王爽 汇编语言 王爽 汇编语言 王爽 汇编语言 王爽 汇编语言
《汇编语言》王爽《汇编语言》王爽
《汇编语言》王爽《汇编语言》王爽《汇编语言》王爽《汇编语言》王爽《汇编语言》王爽《汇编语言》王爽《汇编语言》王爽《汇编语言》王爽《汇编语言》王爽《汇编语言》王爽《汇编语言》王爽《汇编语言》王爽
王爽的__汇编语言王爽的__汇编语言
很不错的汇编语言电子书
王爽的汇编语言王爽的汇编语言
王爽的汇编语言王爽的汇编语言王爽的汇编语言王爽的汇编语言王爽的汇编语言
王爽的《汇编语言》的一个问题
rn学习王爽的汇编语言,有个程序是在屏幕显示“Welcome to masm!”我想在第10行25列开始显示,但是运行是总是显示在第一行,请高手帮忙rnassume cs:code,ds:datarndata segmentrndb 'welcome to masm!',0rndata endsrncode segmentrnstart:rnmov ax,datarnmov ds,axrnmov dh,10rnmov dl,25rnmov cl,2rnmov si,0rncall show_strrnmov ax,4c00hrnint 21hrnshow_str:rnmov ax,0b800hrnmov es,axrnmov ah,160rnmul dhrnmov dh,dlrnadd dl,dhrnmov dh,0rnadd ax,dxrnmov bx,axrnmov al,clrnmov cl,0rns:rnmov ch,ds:[si]rnjcxz okrnmov es:[bx],chrnmov es:[bx+1],alrnadd bx,2rninc sirnjmp short srnok:rnretrncode endsrnend startrn
汇编语言学习笔记3(王爽)
内存字的储存 一个字=两个字节,即一个字需要两个内存单元储存。高地址放高位字节,低地址放低位字节。8086CPU为16位结构,有16位数据线,一次性可传输16位数据,也就是说对内存一次性操作两内存单元即为一个字。 DS寄存器 DS寄存器通常用来存放CPU要访问数据的段地址,[...](eg:[0])表示内存单元的偏移地址。 mov bx,1000H mov ds,bx mov
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池