汇编语言_实验3:编程、编译、链接、跟踪

题目如下:
在这里插入图片描述

(1)

将代码写在.asm中,然后打开boxdos即可生成t1.exe.
在这里插入图片描述

(2)

首先来分析一下,代码完成的功能。

assum cs:codesg
codesg segment

	mov ax,2000      // ax = 2000
	mov ss,ax        // ss = 2000     
	mov sp,0         // sp = 0
	add sp,10 		 // sp = 10,
	
	pop ax			 // sp = sp + 2 =12
	pop bx			 // sp = sp + 2 = 14   // 这段代码首先将ss:10位置的两个值,分别放入ax 和 bx中
	push ax			 // sp = sp - 2 = 12
	push bx			 // sp = sp - 2 = 10 // 然后再将ax先入栈,bx再入栈,这样改变了栈中两个值的顺序
	pop ax			// sp = sp + 2 = 12
	pop bx			// sp = sp + 2 = 14    // 最后,再将ax和bx中的值,互换
	              
	mov ax,4C00
	int 21

codesg ends

end

首先,执行exe文件

debug t1.exe 

在这里插入图片描述
在这里插入图片描述
查看栈中2000:10位置的内容
在这里插入图片描述
执行前,-r查看
在这里插入图片描述
在这里插入图片描述
可见:SS和SP两行代码是一起执行的。
在这里插入图片描述
交换了AX和BX中的值。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值