微机原理实验四 汇编语言程序设计与调试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四 1

一.实验目的:

1.伪指令、宏指令的使用

2.汇编语言程序设计与调试

3.CodeView编译调试工具软件的使用

二.实验内容

1.(重做,用宏定义表格,不用xlat指令,)定义一数据段data,从10H开始存放y 函数值表,table为首指针( Y=X2-2X+3 ;X=3,4,5,6,7,8,9,10)。编一程序根据X值查table表,把对应Y值存入Y变量中。

mm macro

data segment

ORG 10

table db 6,11,18,27,38,51,66,83

x db 5

y db ?

data ends

ENDM

code segment

assume cs:code,ds:data

start: MM

mov ax,data

mov ds,ax

lea bx,table

mov ah,0

mov al,x

sub al,3

add bx,ax

mov al,[bx]

mov y,al

mov ah,4ch

int 21h

code ends

end start

2.字节变量BCDC中定义了10个字节的压缩BCD码(20十进制数),编一程序按顺序把它们转换成字符(ASC码),存入ASCC开始的字节数据区。

data segment

org 10H

BCDC db 61H,11H,18H,27H,38H,51H,66H,83H,44H,55H

ASCC db 20 DUP(?)

data ends

code segment

assume cs:code ,ds:data

start: mov AX,data

mov ds,AX

mov si,offset BCDC

MOV DI,OFFSET ASCC

MOV AX,0

mov cx,10

LOOP1:MOV AL,[si]

MOV AH,[si]

AND AL,0FH

MOV CL,4

SHR AH,CL

ADD AH,30H

mov [DI],AH

INC DI

ADD AL,30H

mov [DI],AL

INC si

INC DI

dec cx

jnz LOOP1

mov AH,4CH

INT 21H

code ends

end

start

3.字符串STR1(如‘Is a ADSL device.’),串长(字节数)存放在字变量LEN中,

编程把STR1串中小写字母都转换成大写字母而其它字符不变。

data segment

org 10H

STR1 DB 'Is a ADSL device.'

LEN DB 19

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: mov ax,data

MOV DS,AX

MOV CX,19

MOV SI,OFFSET STR1

MOV AX,0

LOOP1: MOV AX,[SI]

CMP AX,'a'

JB LOOP2

SUB AX,20H

LOOP2: MOV [SI],AX

INC SI

DEC CX

JNZ LOOP1

MOV AH,4CH

INT 21H

CODE ENDS

END START

三.实验步骤

1.选用合适的程序文本编辑软件编辑源程序,并为文件取以.ASM为扩展名的文件存盘。

2.用宏汇编软件MASM对源程序文件进行汇编,若有错误,根据提示(行号,错误类型)回源程序文件中修改。

3.用LINK对由MASM汇编后产生的目标文件做连接,生成可执行文件;若有错误(同上)回步骤1修改源程序文件。

4.用CV调试程序,检察运行结果,并调试程序。

5.用不同数据反复验正程序的正确性。

6.综合实验结果,得出结论或感受。

相关文档
最新文档