汇编实验2和3

很久没更了,忙+懒。。。难受。

实验2

(1)首先写如下的汇编指令:

下面要求写出各个寄存器的值,这里直接在图中表示,不在给出。

这里可以看到ss是2200且sp开始为0100因为开始修改了它们的值,故修改的内存地址都是SS:SP,另外栈

内的内容也两种方式来给出。第一种直接分析可得push ax ,push bx,即把ax和bx寄存器中的值推到栈内由图

可知分别为c0fc,6021。另一种就是直接利用d命令进行查看,如图可知push [4]和 push [6] 修改的值分别为30f0, 2f31(注意这里是小端法表示):

(2)

输入以下汇编指令:

这里明显可以看出经过t命令之后用d命令查看栈所在的ss地址的内容发现被修改,里面有一段内容为cs:ip的值,

即t命令所执行所需要的汇编指令的内存地址, 但前面还有一段内容并不知道是什么东西。

实验3

将代码写入后进行编译链接形成.exe文件:

然后进行单步调试,这里注意在int 21这里直接用p命令,因为int 21为系统函数,并不是我们需要进入查看的,也不是我们关心的。

而各个寄存器的值也全在图中,这里也就不写出了。

后面查看psp的值, 和代码段公用一个起始地址。

原文地址:https://www.cnblogs.com/kerman/p/9857217.html

时间: 2024-10-14 23:12:25

汇编实验2和3的相关文章

汇编实验课程设计1之设置时间半成品

;    感觉双休就想睡觉,这鬼天气,一直下雨.设置时间未完成,只是加了一个所谓的主界面;   display system time. press f1 to change the color displayed, press esc to return main list. f3 exit;    clear_screen 清空屏幕assume cs:codesgstacksg segment    dw 128 dup(0)stacksg endscodesg segment      

王爽汇编实验九

1 ;实验九 2 assume cs:code,ds:data 3 data segment 4 db 'welcome to masm!' 5 data ends 6 7 code segment 8 start : 9 mov ax,data 10 mov ds,ax;定义数据段 11 12 mov ax,0B800h 13 mov es,ax;定义显示段 14 15 mov cx,16 16 mov si,0 17 mov di,10*160+80 ;将输出显示放在第10行中间 18 19

汇编实验:彩色字符中间位置显示字符串

汇编实验九:在屏幕中间位置显示三行彩色字符串 80*25彩色字符模式显示缓冲区在B8000H到BFFFFH位置.一行80个字符号,160个字节.其中每个字的低位存储ASC2码,高位存储字符颜色属性.属性格式: 7 6 5 4 3 2 1 0 BL R G B I R G B7闪烁: 6.5.4背景: 3高亮: 2.1.0前景 0 1 0 0 1 0 1 0 4ah 0 1 0 0 0 1 0 1 45h 0 0 1 0 0 0 0 1 21h 1 assume cs:codes,ds:dates

王爽汇编实验十一

;实验11 ;把小写字母换成大写字母 assume cs:code , ds:data data segment db "Beginner's All-purpose Symbolic Instruction Code.",0 data ends code segment start: mov ax,data mov ds,ax mov si,0 call letterc mov ax,4c00h int 21h letterc: push ax push si fun: mov al

汇编实验1及博客初尝试

Part 1 这一篇博客应该不是传说中的技术博客.初闻博客该是小学的计算机课,那个时候老师教我们注册邮箱注册博客注册论坛.注册完了我们便去玩植物大战僵尸,不用动脑子的重复性操作.计算机老师也和我们探究了游戏的本质.一次一次的重复性操作.注册博客似乎要用到邮箱,邮箱无论是账号还是密码总是忘啊,这一周上课,下一周再用,账号密码不记得了.依稀记得计算机老师教我们骗过注册博客必须填邮箱的方法,手机号[email protected]或是[email protected].小学时写过第一篇博客.写了什么不

ICS2019-Linux汇编实验指导

ICS2019-Linux汇编实验指导 一. 首先安装NASM 1. 先判断系统是否已经安装了nasm 打开终端,执行  whereis nasm :如果显示nasm: /usr/bin/nasm ,则已经安装:如果只显示nasm:,则未安装. 如下图 则是未安装状态 2.下载NASM 点击这个链接下载 3.按照下面步骤安装nasm 依次输入以下命令 tar xzvf nasm-2.14.02.tar.gz  //  解压nasm cd nasm-2.14.02   // 进入目录 ./conf

汇编实验二

实验任务一: 用 a 命令输入指令调试前,使用 e 命令将内存单元 0021:0 ~0021:7 连续 8 个字节数据修改为 30H, 31H, 32H, 33H,34H,35H,36H,37H 用a命令输入指令 用t命令分布执行,并记录实验数据 由实验可知数据为: mov ax,[0]; ax=3130H mov ax,[2]; ax=6462H mov bx,[4]; bx=3534H add bx,[6]; bx=6c6aH push ax; sp=00feH;修改的内存单元的地址是220

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

实验任务 (1)使用debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空. a.使用 e 命令修改 0021:0~0021:f 数据为30H,31H,32H,33H,34H,35H,36H,37H,并查看. 截图 b.将下面的程序段写入内存 mov ax,0021 mov ds,ax mov ax,2200 mov ss,ax mov sp,0100 mov ax,[0]:                                             ax=3

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

实验二  用机器指令和汇编指令编程 任务一: (1)用E命令将内存单元0021:0~0021:7连续8个字节数据修改为30H,31H,32H,33H,34H,35H,36H,37H. (2)用A命令输入汇编指令: (3)用T命令单步执行: 在用T命令执行MOV SS,AX时,它的下一条指令MOV  SP,0100同时执行. (4)填写书上内容: 任务二: 观察如图实验过程,分析为什么2000:0~2000:f中的内容会发生改变. 任意时刻,SS:SP指向栈顶元素,初始时栈为空.初始时,栈顶为0B