汇编语言实验一 Debug程序的使用

                                     **实验一  Debug程序的使用**

1、利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。

-e ds:0200 78 56 34 12 98 BA DC FE

2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元 中的数据相加,并将运算结果存放在DS:0208H单元中。
直接寻址:

  MOV  AX,[0200]
  MOV  BX,[0202]
  ADD  AX,[0204]
  ADC  BX,[0206]
  MOV  [0208],AX
  MOV  [020A],BX

间接寻址:

MOV 	SI,0200
MOV 	DI,0204
MOV 	BX,0208
MOV 	AX,[SI]
MOV 	DX,[SI+2]
ADD 	AX,[DI]
ADC	DX,[DI+2]
MOV 	[BX],AX
MOV 	[BX+2],DX

3、附加题:
①从DS:0000H开始的5个16位带符号数分别记为x,y,z,v,w,用E命令初始化为:540,1,-1,1080,0, 试求w=(v-(x*y+z-540))/x

-e ds:0000 1C 02 01 00 FF FF 38 04 00 00 
MOV 	AX,[0000]
MOV	SI,AX
MOV 	DX,0000
MOV 	SI,[0002]
IMUL 	SI
MOV 	CX,AX
MOV 	BX,DX
MOV 	AX,[0004]
CWD
ADD 	CX,AX
ADC 	BX,DX
SUB 	CX,021C
SBB 	BX,0
MOV 	AX,[0006]
CWD
SUB 	AX,CX
ABB	DX,BX
MOV 	SI,[0000]
IDIV 	SI
MOV 	[0008],AX
MOV 	[000A],DX

②完成BX中1的个数的统计(注意这里的LOOP 0108是你dos里循环开始的代码位置,你也可以写成标号的形式);

MOV 	AL,00
MOV	BX,0077
MOV 	CX,10
SHL	BX,1
ADC	AL,0
LOOP	0108

③用串操作指令将DS:0000开始20个字初始化为:0DDCCH。并将这20个字的内容复制到其后的20个字里(注意这里的JNZ 0106是你dos里循环开始的代码位置,你也可以写成标号的形式)

MOV 	CX,14
MOV	SI,0
MOV	WORD PTR[SI],DDCC
ADD 	SI,0
DEC	CX
JNZ		0106
CLD
MOV	SI,0
MOV	DI,28
MOV	CX,14
REP	MOVSW

下载完整实验报告,请移步下载区:
https://download.csdn.net/download/qq_43284141/11289139

你可能感兴趣的:(#,汇编语言,汇编语言)