赞
踩
1、设 AX=3000H,BX=5000H;请编一程序段将 AX 和 BX 的内容进行交换。 要求:
(1)分别用 3 种方法实现;
(2)用 DEBUG 进行汇编与调试;
(3)记录每种方法执行结果
(1)分别用 3 种方法实现
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
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
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
(2)用 DEBUG 进行汇编与调试
(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 的值是什么?
标准位 | 1 | 0 |
---|---|---|
进位标志CF | CY | NC |
符号标志SF | NG | PL |
零标志ZF | ZR | NZ |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。