实验报告(计算机硬件技术基础),计算机硬件技术基础 实验报告二.doc

该博客介绍了80X86汇编语言的顺序程序设计,通过实验二的程序2详细解释了如何进行位移运算和数值计算,实现y=10x的计算过程。同时,展示了调试程序3的错误及其修正,涉及十六进制到二进制转换的编程技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验二 汇编语言顺序程序设计实验

【实验目的】

1.掌握汇编语言顺序程序设计方法。

2.熟悉常用汇编指令的用法。

3.学会用debug输入、运行小程序,并检查运行情况的方法。

4.学会在PC机上建立、汇编、连接、调试和运行80X86汇编语言程序的过程。

【实验内容】

列出调试程序2的源程序清单并加以注释,说明该程序的功能。

程序2及注释:

DATA SEGMENT

X DB 20H

Y DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DATA

START: MOV AX, DATA

MOV DS, AX

MOV AL, X ;取被操作数,X=20H

XOR AH, AH ;使操作数自身清零

SHL AX, 1 ;将AX移高1位

MOV BX, AX ;BX=AX=40H

MOV CL, 2 ;放置准备移动的位数

SHL AX, CL ;取操作数的高 2 位 ,AX=160H

ADD AX, BX ;AX+BX

MOV Y, AX ;AX→Y,Y=200H

MOV AH, 4CH

INT 21H

CODE ENDS

END START

该程序实现了:计算表达式y=10x。

2. 说出调试程序3的出错处,列出调试程序3经修改运行正确后的源程序清单。

调试前:

图1 运行程序3,错误和警告

调试后的程序3:

DATA SEGMENT

ORG 1000H

BIN DW ? ;存放转换后的二进制数

HEX DB '6B' ;待转换的十六进制数6BH

ORG 1030H

DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H;0-9对应的二进制数转换表

ORG 1040H

DB 0AH,0BH,0CH,0DH,0EH,0FH ;A-F对应的二进制数转换表

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX, DATA

MOV DS, AX

MOV AL, HEX ;十六进制高位36H→AL

MOV BX, OFFSET BIN ;BIN的偏移地址1000H→BX

SUB AH, AH ;AH清0

ADD BX, AX ;1036H→BX形成转换表地址

MOV DL, [BX] ;DL=(1036H)=06H

SHL DL, 4 ;将DL左移至高4位,DL=60H

MOV AL, HEX+1 ;十六进制低位42H→AL

MOV BX, OFFSET BIN ;BIN的偏移地址1000H→BX

XOR AH, AH ;AH清0

ADD BX, AX ;1042H→BX形成转换表地址

MOV AX, BX ;AL=(1042H)=0BH

OR AX, DX ;AL=0BH∨60H=6BH

MOV BIN, AX ;6BH→BIN单元

MOV AH, 4CH

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值