第一范文网 - 专业文章范例文档资料分享平台

xin微机原理与汇编语言程序设计

来源:用户分享 时间:2025/5/25 16:10:20 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

int 21h

MOV AH,4CH INT 21H CODES ENDS END START 2、编一段程序,在内存中自 SQTAB 地址开始的连续 10 个单元中存放 0-9 的平方值。要求从键盘输入1位数,利用简单的查表法指定数( 0-9 )的平方值,并将所求平方值存入 RESULT 单元。调试运行时,请采用两种方法:

(1)调用DEBUG程序查看运行结果并记录每步运行结果 (2)将表达式的值在屏幕上显示出来 DATAS SEGMENT

sqtab db 0,1,4,9,16,25,36,49,64,81 ;此处输入数据段代码 DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码 STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AX,DATAS MOV DS,AX

mov ah,1;此处输入代码据段代码 int 21h and al,0fh lea bx,sqtab

xlat;平方值送入AL中 mov bl,10 mov ah,0

div bl;(AL)=十位,(AH)=个位 mov bh,ah or al,30h mov dl,al mov ah,2 int 21h or bh,30h mov dl,bh mov ah,2 int 21h MOV AH,4CH INT 21H

17

CODES ENDS END START 运行结果416

3、阅读下列程序,指出此程序执行结束后,显示器所显示的内容并在每条指令后加上注释。

data segment num db 00111001

buf db 0ah,0dh,‘(NUM)=’ buf0 db 4 dup (?) data ends code segment

assume cs:code,ds:data begin:mov ax,data mov ds,ax lea di,buf0 mov al,num mov cl,4 shr al,cl or al,30h mov [di],al inc di

mov al,num and al,0fh or al,30h mov [di],al inc di

mov byte ptr [di], ‘H’ inc di

mov byte ptr [di], ‘$’ lea dx,buf mov ah,9 int 21h mov ah,4ch int 21h code ends

end begin 运行结果=39H

【预习要求】

1.仔细阅读课本及相应教材。

2.参照程序框图编制源程序,准备好多组运算数据,以供校验。 【实验步骤】

1、确定算法,画出程序流程图。 2、利用文本编辑程序,建立源文件。

18

3、利用汇编程序MASM对源程序汇编,形成目标文件 4、利用LINK对目标文件进行链接,形成可执行文件。

5、运行可执行文件并写出运行结果,如果有错误,利用DEBUG软件进行调试。

【思考题】

1、寄存器BX中有4位0~9的十六位数(如9876H),编写程序段,将其转换为对应的ASCII码,按从高到低的顺序分别存入AH,AL,BH,BL这四个寄存器中. 请同学们修改程序将转换的ASCII码再屏幕上显示。 da segment xx DW 9876H da ENDS code segment

assume cs:code,DS:da begin:mov AX,DA

mov DS,AX mov bx,xx mov dx,xx and bx,0f000h mov cl,4 shr bx,cl

mov ah,bh ;high 15~12 add ah,30h mov bx,xx and bx,0f00h

mov al,bh ;high 8~11 add al,30h mov dx,xx and dx,00f0h shr dx,cl mov bh,dl

add bh,30h ;high 4~7 mov dx,xx and dx,000fh

mov bl,dl;high 0~3 add bl,30h code ends

end begin

2.阅读下列程序,指出此程序所完成功能,并指出运算结果存放在何处。 DATA SEGMENT DA DW 34 DATA ENDS CODE SEGMENT

19

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV SI,OFFSET DA MOV AL, BYTE PTR [SI] MOV BL,10 MUL BL

MOV [SI],AX MOV AH,4CH INT 21H CODE ENDS

END START

【实验报告要求】

1、记录实验步骤和出现的现象,按照要求写出显示结果,源程序加上注释。 2、比较实验记录和理论分析的结果是否相同,如果不同找出差别并分析原因。

3、回答思考题,写实验报告,画出算法流程图,总结本次实验体会。

实验四 DOS系统功能号调用

【实验目的】

1 、掌握 DOS 系统功能调用的使用方法。掌握接受键盘数据的方法。

学会将键盘数据显示时须转换为ASICII码的原理。

2、进一步熟悉的应用数据传送、数据运算、逻辑运算等相关指令的使用 3、继续熟悉调试工具DEBUG的应用

4、熟悉汇编语言编辑、汇编、链接和调试的全部过程

【实验内容】

1 、编写程序实现从键盘上输入2个1位十进制数相加后输出,要求有交互界

面(例如显示5+8=13) DATAS SEGMENT input db 'input 0-9:$'

buf db 0,'+',0,'=',0,0,'$';此处输入数据段代码 DATAS ENDS

20

搜索更多关于: xin微机原理与汇编语言程序设计 的文档
xin微机原理与汇编语言程序设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2kifr9fw274mu7525edl_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top