《汇编语言》王爽 P88 实验3

news/2025/3/14 1:43:45/

《汇编语言》王爽 P88 实验3

Mac系统配置这些蛮麻烦的:
下载个DOSBOX,再下载debug,在DOSBOX中把debug挂到C盘去吧
比如我想把air下面的debug文件挂成C盘,就括号中这条命令:
(mount c /Users/air/debug),当然你也可以放其他位置,取其他的名字,只要后面的目录对就可以;
下载edit.exe 和masm都放到debug这个文件中去吧,这样执行起来也方便
1)生成t1,exe (注:数字后面一定要加h, 我一开始很蠢的把)

assume cs : codeseg
codeseg segmentmov ax, 2000Hmov ss, axmov sp, 0add sp, 4pop axpop bxpush axpush bxpop axpop bxmov ax,4c00Hint 21h
codeseg ends
end

生成T1.exe
2)debug执行T1.exe之后:
用r显示初始状态
可以看出 DS = 075A; CS=076A,两个段地址相差10H,是因为PSP的256个字节的原因;
疑惑:DS和CS的不同,有什么用嘛?
CX=0016是T1的字节长度,16H个字节;
从mov ax,2000到int 21的每个指令的字节长度为:3,2,3,3,1,1,1,1,1,1,3,2,sum之后是22个字节,写成16进制就是16H (16*1+6=22).

以下为执行mov ax, 2000H
mov ss, ax
mov sp, 0
add sp, 4
很容易看出来 mov ss, ax 和 mov sp, 0000同时执行了

以下为执行pop ax
pop bx
push ax
push bx
很容易看出来 每次pop之后 SP+2; 每次push之后,SP-2, 初始为SP=0004
pop ax, 把栈顶内容存入寄存器ax,所以ax从2000编程0000, SP=0006
pop bx, 把栈顶内容存入寄存器bx,SP=0008
push ax, 把寄存器ax内容压入栈顶, SP=0006
猜测一下:push bx, 把寄存器bx内容压入栈顶, SP=0004

以下为执行pop ax
pop bx
mov ax,4c00H
int 21h
最后program terminated normally, 一切正常。

3)PSP的头两个字节是CD20,用debug加载t1.exe,查看PSP的内容
也就是说要查看内存075A:0的内容嘛;
使用命令: -d ds:0 , 答案bingo!


http://www.ppmy.cn/news/289763.html

相关文章

IRIG-B码对时

前言:最近我在学习IRIG-B码对时时一直对这个对时转换存在一些疑问,几乎在网上搜遍了资料也没有一个清晰的解答,最终直接使用一台时钟服务器、一台精准时间测试仪,进行IRIG-B测试,查看编码译码内容才对IRIG-B对时解析有…

p88-高级-消息- RabbitTemplate发送接受消息序列化机制

SmarTTY中首先搭建环境&#xff0c;过程如图所述&#xff0c;每次只需要走这几步&#xff0c;就可以在rabbitmq的客户端访问到&#xff1a; RabbitTemplate发送接受消息&序列化机制 1、pom.xml <?xml version"1.0" encoding"UTF-8"?> <p…

UML类图箭头总结

概念 1.类&#xff08;Class&#xff09;&#xff1a;使用三层矩形框表示 . 第一层显示类的名称&#xff0c;如果是抽象类&#xff0c;则就用斜体显示 . 第二层是字段和属性 . 第三层是类的方法 . 注意 : 前面的符号&#xff0c;‘’表示public&#xff0c;‘-’表示private&am…

九宫格多级OLED(LCD)菜单

目录 函数指针 函数指针的定义方式 使用举例 菜单索引 索引格式 索引列表 按键获取 UI刷新 光标 页面函数 OLED菜单实现的方法有很多&#xff0c;本文介绍的方法也很常见。相对来说比较特殊的地方就是九宫格&#xff0c;但实现起来难度也不是特别大。本文只介绍了该菜…

PEP8

代码布局 缩进 函数参数列表if 语句条件集合 制表符 or 空格行的最大长度二元运算符空行源文件编码Import 导入模块级的魔法名称 字符串引号表达式和语句中的空格 避免使用无关的空格其他建议 注释 块注释行内注释文档字符串 命名规范 命名风格命名约定 应避免的名字包名和模块…

C++核心之程序的内存模型P84-P88

内存分区模型&#xff1a; C程序在执行时&#xff0c;将内存大方向划分为4个区域 代码区&#xff1a;存放函数体的二进制代码&#xff0c;由操作系统进行管理的全局区&#xff1a;存放全局变量和静态变量以及常量栈区&#xff1a;由编译器自动分配释放, 存放函数的参数值,局部…

【统计学习|书籍阅读】第六章 logistics回国和最大熵模型 p77-p88

文章目录 思路logistic回归模型最大熵模型最大熵模型定义最大熵模型的学习极大似然估计 模型学习的最优化算法 思路 logistic 回归是统计学习的经典分类方法。最大熵是概率模型学习的一个准则&#xff0c;将其推广到分类问题得到最大熵模型。 logistic回归模型 logistic分布…

阿里P8熬了一个月肝出这份阿里内部(泰山版),在Github标星31K+

2021年的互联网行业竞争越来越严峻&#xff0c;面试也是越来越难&#xff0c;一直以来我都想整理一套完美的面试宝典&#xff0c;奈何难抽出时间&#xff0c;这套阿里巴巴泰山版的Java面试手册我整理了整整1个月&#xff0c;上传到Git上目前star数达到了30K 然后看到好多同学 …