汇编语言之实验二

实验2 用机器指令和汇编指令编程 

(1)使用DEBUG,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。

e 0021:0  0021:7  30H,31H,32H,33H,34H,34H,35H,36H,37H

mov ax,0021

mov ds,ax

mov ax,2200

mov ss,ax

mov sp,0100

mov ax,[0]    ;ax= 3130

add ax,[2]    ;ax= 6462

mov bx,[4]    ;bx= 3534

add bx,[6]    ;bx= 6c6A

push ax       ;sp= 00FEH ,修改的内存单元地址是 2200:00FE 内容为 6462H

push bx       ;sp= 00FCH ,修改的内存单元地址是 2200:00FC 内容为 6c6AH

pop ax        ;sp= 00FEH ,ax= 6c6AH

pop bx        ;sp= 0100H ,bx= 6462H

push [4]      ;sp= 00FEH ,修改的内存单元地址是 2200:00FE 内容为 3534

push [6]      ;sp= 00FCH ,修改的内存单元地址是 2200:00FC 内容为 3736

以上是实验指令执行后结果

按照要求输入指令,使用a指令输入。

逐条执行,执行后,根据执行后寄存器内容,填写

实验2 用机器指令和汇编指令编程 

(2)仔细观察图3.19中的实验过程,然后分析:为什么2000:0~2000:F中的内容会发生改变?

输入指令

执行

实验二的预备知识里面有这一块的知识,关于中断机制,Debug的T命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行。

后来查找资料,得知

中断过程使用当前栈空间存放cpu关键数据,所以,你的栈里就有些不是所操作的数据。

原文地址:https://www.cnblogs.com/bowentianxia/p/9867913.html

时间: 2024-08-07 06:56:35

汇编语言之实验二的相关文章

《汇编语言》实验二课程

 实验二预备知识: 1.debug内容补充:①D命令由debug执行,debug执行D命令时,首先将段地址1000h送入段寄存器,且默认送入ds中. ②debug依靠CPU运行的程序来执行D命令,cpu从段寄存器中得到内存单元段地址. 2.debug的T命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行,这里的内容涉及到中断机制,笔者目前对中断不够了解,等到以后学到该内容再回来补充! ----------------------------------------------------

汇编语言程序设计实验二

分支程序设计(1) 实验内容:在内存 Score 缓冲区中存放有 100 个学生的成绩数据,为无符号字节数.假设学生成绩在[90, 100]区间为优秀,在[80,90)区间为良好,在[70,80)区间为一般,在[60,70)区间为及格,在[0,60)区间为不及,要求统计出不及格,及格,一般,良好和优秀的人数,分别送入 Notpassed, Passed, Good, Better 和 Best字节单元. 用普通的跳转语句实现上述功能. 分析:实验内容没什么好说的了.首先将一个成绩放到一个寄存器中

【汇编语言】(王爽著第三版)实验二

实验二 实验任务(一) 实验前要求我们将书本P74的程序段按理论分析,将结果进行填空.之后用Debug,将该程序段写入内存,逐条执行之后, 根据指令执行后的实际运行的结果填空如下. mov ax,0021 mov  ax , ffff mov  ds , ax mov  ax , 2200 mov  ss , ax mov  sp , 0100 mov  ax , [0]                       ;ax=3130 add  ax , [2]                 

汇编语言程序设计实验报告二

实验目的: 1.熟练掌握使用debug工具编写和调试汇编命令的方法: 2.理解并掌握内存中多字节数据的存放: 3.理解并掌握[栈]内存空间的特性和使用: 4.理解并掌握8086汇编指令 mov,add,sub,push,pop的用法. 实验步骤: p74(1) 下图为书上实验没修改数据之前所得到的结果,有错误还希望大家指正!!! 根据实验二的要求,在使用-a进行调试之前,使用-e命令修改内存单元,如下图所示 注:因为之前修改完之后不小心cls清了一下屏,所以0021:0~0021:7的默认值就不

微机接口技术与汇编语言上机实验报告_汇编初步(intel8086)

实验环境:intel x386 一.要求:将3000H单元开始置数为00H-0FH SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE, SS:SSTACK START: PUSH DS XOR AX, AX MOV DS, AX MOV SI, 3000H MOV CX, 16 AA1: MOV [SI], AL INC SI INC AL LOOP AA1 ;CX == 0? NEXT():AA1

MySQL数据库实验二:单表查询

实验二   单表查询 一.实验目的 理解SELECT语句的操作和基本使用方法. 二.实验环境 是MS SQL SERVER 2005的中文客户端. 三.实验示例 1.查询全体学生的姓名.学号.所在系. SELECT Sname,S#,Sdept FROM S: 2.查询全体学生的详细记录. SELECT  * FROM S: 3.查全体学生的姓名及其出生年份. SELECT Sname,2011-Sage    /*假定当年的年份为2011年*/ FROM S: 4.查询选修了课程的学生学号.

20145221高其&20145326蔡馨熠《信息安全系统设计基础》实验二 固件设计

20145221高其&20145326蔡馨熠<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux 环境下串行程序设计的基本方法. 掌握终端的主要属性及设置方法,熟悉终端I /O 函数的使用.学习使用多线程来完成串口的收发处理. 熟悉linux开发环境,学会基于S3C2410的linux开发环境的配置和使用.使用linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的

实验二 作业调度模拟程序

实验二 作业调度模拟程序 一.        实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 二.        实验内容和要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调度程序.作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素.      作业调度算法: 1)      采用先来先服务(FCFS)调度算法,即按作业到达的先后次序进行调度.总是首先调度在系统中等待时间

实验二

实验二.pcb进程 专业 网络工程   姓名 方俊晖 学号 201406114309 一.        实验目的 通过本实验可以加深对有关进程控制块.进程队列的概念的进一步理解. 二.        实验内容和要求 1.进程PCB的结构体定义 2.定义结构体 3.输入进程序列 4.排序(按到位时间) 5.输出进程运行的结果 三.        实验方法.步骤及结果测试 #include<stdio.h>typedef struct PCB{int time;int member;int he