汇编 实验四

实验内容 一:

   

运行截图:

 

调试截图

将0403h改为0441h后 :

 

运行截图:

调试截图 :

 

实验内容 二 :

1)

调试截图:

 

 2)

参考代码:  (来源于网络)

assume cs:code
code segment
mov ax,20h
mov ss,ax
mov sp,40h
mov bx,3f3eh
mov cx,32
s: push bx
sub bx,0202h
loop s
mov ax,4c00h
int 21h

code ends
end

 

调试截图

 

思考:

mov ss,ax 指定堆栈段为0:200处

mov sp,40h 指定栈顶指针为0:23f处

定义栈位置为200-23f 然后将数据0~63 倒序压入栈

 

在push bx 命令前 0:200 23f 之间的内存

 

第一次 push 后

 

逐渐循环......

 

最终达成目的

实验内容 三 :

(3)下面的程序功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。

assume cs:code   

code segment   

     mov ax,cs 

     mov ds,ax   

     mov ax,0020h   

     mov es,ax   

     mov bx,0   

   mov cx,17h   

  s: mov al,[bx]   

     mov es:[bx],al   

     inc bx   

     loop s   

     mov ax,4c00h   

     int 21h   

code ends   

end

 解答:

 第一空 : 将段代码CS:存放当前正在运行的程序代码所在段的段基值赋值给 ds 

 第二空 : 推出来的

先随便令 cx=20

 

通过反汇编

 

 “mov ax,4c00h"之前 是至 0017

 所以如果将“mov ax,4c00h"之前的指令复制到内存0:200处 需复制17个字节

 需循环17次

 cx =17h

 

转载于:https://www.cnblogs.com/WINNER9898/p/10004579.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值