摘要:(1)懒得一个个敲进去了 ,直接把老师的实验框架放进挂载文件夹里面,果不其然汉字出现了乱编码,不过已经注释掉了,对照着把代码补全了: 实验结果: (2) 源代码: 下面的mov 4c00h int 21h 没截就不显示了 空格的ascii为32 这里 mov ah,x int 21h 其实是一个指令
阅读全文
摘要:(1) 1、23 01 56 04 89 07 BC 0A EF 0D ED 0F BA 0C 87 09 2、cs=076C ss=076B ds=076A 3、code段的地址为x,则data段的段地址为x-2,stack段的段地址为x-1; (2) 1、23 01 56 04 2、cs=076
阅读全文
摘要:一、 源程序编写: #1551.asm assume cs:code code segment mov ax,0b800h mov ds,ax mov cx,16 mov bx,07b8h mov ax,0403h s: mov [bx],ax add bx,2 loop s mov ax,4c00
阅读全文
摘要:在dos下使用edit工具进行编辑代码t1.asm,使用alt键调出菜单保存 运行masm进行编译第一行输入文件名t1默认为.asm文件,若是txt则写t1.txt,后面可以先全部enter 生成.obj,运行link链接器,第一行输入t1(刚刚的obj文件名字),run file可以直接enter
阅读全文
摘要:(1)a命令从1000:0依次输入命令如下 将cs ip对准100:0 使用t命令单步跟踪每个寄存器 完成书上填空 这里pop ax将栈上原来bx的值弹给了ax 所以ax的值和bx原来一样,再pop bx将最底下储存原来的ax值赋值给了bx 最终达到swap的交换效果,真是6啊 (2)运行书上所列出
阅读全文
摘要:win10 win7没有xp的debug模式,需要下载dosbox虚拟环境 下载好dosbox后下载debug工具,设置工作文件夹,在dosbox下输入mount C C;\dosbox 挂载在虚拟环境之中 后面的path是实际的工作环境 r模式 显示所有寄存器数值 ‘r 寄存器’例如 r ax 后
阅读全文
摘要:前半部分是在机房xp系统下做的,直接打开cmd输入debug进入 (1)首先使用r模式改变cs ip的指向地址,输入rcs,跳出当前cs段地址,再输入1000更改cs ip如上操作 进入a模式 输入1000:0进入逐个单元进行输入命令如下图 输入完成,使用t指令单步调试,如下图 总结:可见cs段地址
阅读全文
摘要:段寄存器分为CS,IP与SS,ES cs为代码段寄存器,ip为指令指针寄存器,同vol1 cs与ip组成cs:ip物理地址,16进制下cs乘16加上ip即物理地址。 每次读取一条指令的时候,ip自动加一,指向下一条指令地址。 jmp指令,cs ip读到该指令会进行ip跳转,跳到指定内存读取那个命令
阅读全文
摘要:所有机器能够识别的语言都是由10组成的机器语言,所有高级语言都需要经汇编语言由编译器转换成最基础的机器语言让计算机执行。相比于高级语言,汇编语言更加直接执行更加高效,然而编写起来更不人性化。 不同芯片的汇编语言不同,每家公司有不同的ISA(指令集)。指令与数据在形式上是一样的。 数据大小: 一个二进
阅读全文