当前位置:   article > 正文

汇编 实验1 Debug 基本命令及汇编基本指令_用堆栈方法交换ax3000h,bx5000h

用堆栈方法交换ax3000h,bx5000h

1、设 AX=3000H,BX=5000H;请编一程序段将 AX 和 BX 的内容进行交换。 要求:
(1)分别用 3 种方法实现;
(2)用 DEBUG 进行汇编与调试;
(3)记录每种方法执行结果

(1)分别用 3 种方法实现

  1. 方法一:使用 X C H G XCHG XCHG指令
DATA SEGMENT 
	X DW 3000H
	Y DW 5000H
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:
	MOV AX,DATA
	MOV DS,AX
	MOV AX,X
	MOV BX,Y
	XCHG AX,BX
	MOV AH,4CH
	INT 21H
CODE ENDS
	END START
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  1. 方法二:利用一个中间量 C X CX CX交换 A X AX AX B X BX BX
DATA SEGMENT 
	X DW 3000H
	Y DW 5000H
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:
	MOV AX,DATA
	MOV DS,AX
	MOV AX,X
	MOV BX,Y
	MOV CX,AX
	MOV AX,BX
	MOV BX,CX
	MOV AH,4CH
	INT 21H
CODE ENDS
	END START
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  1. 方法三:利用堆栈实现
DATA SEGMENT 
	X DW 3000H
	Y DW 5000H
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:
	MOV AX,DATA
	MOV DS,AX
	MOV AX,X
	MOV BX,Y
	PUSH AX
	PUSH BX
	POP AX
	POP BX
	MOV AH,4CH
	INT 21H
CODE ENDS
	END START
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

(2)用 DEBUG 进行汇编与调试

  1. 方法一
    在这里插入图片描述
  2. 方法二
    在这里插入图片描述
  3. 方法三
    在这里插入图片描述

(3)记录每种方法执行结果

  1. 方法一
    在这里插入图片描述
  2. 方法二
    在这里插入图片描述
  3. 方法三
    在这里插入图片描述

2、分别执行以下指令,比较立即寻址和直接寻址间的区别,寄存器寻址、寄存器间接寻址和相 对寄存器寻址间的区别。
(1)

Mov ax,1000H 
Mov ax,[1000h]  
  • 1
  • 2

(2)

mov bx,2000H  
mov ax,bx  
mov ax,[bx]  
mov ax,30[bx] 
  • 1
  • 2
  • 3
  • 4

要求:
(1)在执行以上指令时,记下当时 DS 数据段的值,写出每条指令执行后 AX 的结果。
(2)用 E命令修改指令偏移地址“1000h”处的值,再次执行“Mov ax,[1000h]”,指令, 记录执行结果。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、已知有如下程序段:

MOV AX,5678H
MOV CL,4 
STC ;设置 CF=1 在以上程序段的基础上,分别执行以下指令,观察 AX 值的变化。 
ROL AX,CL 
ROR AX,CL 
SHL AX,CL 
SHR AX,CL 
SAR AX,CL 
RCL AX,CL 
RCR AX,CL
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

试在 DEBUG 下用 A 命令汇编以上程序段,用 T 命令跟踪,观察以下内容:
(1)每条指令执行完后,AX 寄存器的内容是什么?
(2)每条指令执行完后,进位位 CF、符号位 SF 和零标志位 ZF 的值是什么?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标准位10
进位标志CFCYNC
符号标志SFNGPL
零标志ZFZRNZ
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号