美文网首页工作生活
《汇编语言》实验8

《汇编语言》实验8

作者: infinite_stack | 来源:发表于2019-06-29 16:42 被阅读0次

P187
分析下面的程序,在运行前思考:这个程序可以正确返回吗?
运行后再思考:为什么是这个结果?

assume cs:code
code segment

       mov ax,4c00h
       int 21h

start: mov ax,0
    s: nop
       nop

       mov di,offset s
       mov si,offset s2
       mov ax,cs:[si]
       mov cs:[di],ax

   s1: jmp short s
       int 21h
       mov ax,0

   s2: jmp short s1
       nop

code ends
end start

分析:

mov di,offset s
mov si,offset s2
mov ax,cs:[si]
mov cs:[di],ax

这段代码执行后,s处的两字节改写为s2处的指令jmp short s1
观察s2与s1s与code的位置,可以发现,两者之间的字节数相等,即:s处的指令相当于jmp short code
当代码执行到s1处,跳转s,接着跳转code,故程序最终能正确返回。

相关文章

  • 《汇编语言》实验8

    P187分析下面的程序,在运行前思考:这个程序可以正确返回吗?运行后再思考:为什么是这个结果? 分析: 这段代码执...

  • Mac下如何查看CPU和内存

    为了学习汇编语言,特意看了王爽的《汇编语言》。到了第二章的实验题,因为Mac缘故,无法做实验了。怎么办? 1:下载...

  • 【汇编语言实验一】搭建开发环境

    汇编语言系列文章仅作为实验报告和汇编学习参考,不作为任何技术文章,还望大佬们勿喷。 1. 实验名称 搭建汇编语言的...

  • ARM汇编语言与C语言混合编程(part1)

    汇编语言调用C语言 题目:用汇编语言调用C语言实现21!(21的阶乘) 实验软件:ARM Developer Su...

  • 汇编练习:不会溢出的除法

    王爽老师的《汇编语言》在实验10.2中提出了div指令可能出现的除法溢出的问题。例如对于16位除以8位的情形,考虑...

  • [汇编语言] 实验12

    一、编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示 字符串"divide error!",然后返回到...

  • [汇编语言] 实验11

    一、编写一个子程序,将包含任意字符,以0结尾的字符串的小写字母转变成大写字母,描述如下: 名称:letters功能...

  • 《汇编语言》实验9

    P187~189编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串"welcome to masm!"。

  • 《汇编语言》实验7

    P172~174

  • 使用汇编语言向屏幕打印内容

    【实验目的】使用汇编语言编写一段程序, 向屏幕中显示'Welcome to OS!'字符 【工具】 https:/...

网友评论

    本文标题:《汇编语言》实验8

    本文链接:https://www.haomeiwen.com/subject/eoypcctx.html