ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:1,003.65KB ,
资源ID:20228536      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20228536.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言程序设计实验文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言程序设计实验文档格式.docx

1、,13,10,$MESS2 DB NO MATCH!DATA ENDS code segment assume cs:code,ds:data,es:data main proc far start:push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax ;main program mov cx,count lea si,string1 lea di,string2 cld repz cmpsb jz mes1 mov dx,offset mess2 jmp disp0 mes1:mov dx,offset mess1 disp0:

2、mov ah,9 int 21h exit: ret main endp code ends end start修改字符串,使其不同,并对以上源程序重新汇编、连接、运行,结果输出为:NO MATCH!修改前:修改后:三、实验题。1、上机完成以上示例程序。2、完成课堂例题,并用 DEBUG运行,观察结果。data segmentX db 6Y db ?data endscode segmentdatamov ax,datamov ds,axmov al,xmov y,5add y,almov ah,4chint 21hcode endsend start程序:改变后:实验三 顺序结构程序设计学习

3、数据传送指令和算术运算指令的用法;掌握数据定义伪指令的格式,会用DEBUG中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。二、示 例试问如下程序执行到exit时,字单元A、B、D、D+1、D+2中的内容各是什么?源程序如下: a db 10 b dw 20 d db 30,40,50 assume cs: mov al,data mov ds,ax mov al,d+1 add al,d mov a,al add al,d+2 mov b,al add d,10 add d+1,20 add d+2,30exit: mov ah,4ch i

4、nt 21h end start阅读以上程序,运行程序并用debug调试分析出结果。字单元A:4C5A。字单元B:2B5A。字单元D:3C2B。字单元D+1:503C。字单元D+2:0050。1、求表达式Y=A*X2+B*X+C的值,已知A、B、C分别存放在DATAA、DATAB、DATAC字节单元,X存放在TABL字节单元,结果Y放入RESULT字单元。要求: 在DEBUG下多次修改X的值,观察执行结果Y; 修改原程序,从键盘上输入X的值,观察执行结果Y。(见书P471) data segment dataa db 1 datab db 3 datac dw 5 tabl db 7 resu

5、lt dw ? assume cs: mov ax,data mov ds,ax mov al,tabl mul al mul dataa mov bx,ax mul datab add ax,bx add ax,datac mov result,ax mov ah,4ch int 21h end start运行结果为16进制的4B,即75,计算正确。在修改X值为9后,运算结果为71,即113,计算正确。继续修改X值为3,运行结果为17,即23,计算正确。 data segment tabl db ? mov ah,01 sub al,30h mov tabl,al push ax mul d

6、atab pop bx 从键盘上输入X值为7,输出结果为4B。2、上机完成教材习题3.11(P108),写出正确结果。 table dw 10,20,30,40,50 entry dw 3 ASSUME DS:data,cs:code mov ax,data mov bx,offset table add bx,entry mov ax,bxAX=1E00H。四、实验报告写出程序清单,记录运行结果;总结DEBUG中U、E、D、T、G命令的功能。U命令的功能:将主存内容按照机器代码形成汇编指令显示;E命令的功能:用于修改主存内容;D命令的功能:显示主存单元的内容;T命令的功能:每执行一条指令就显

7、示运行结果;G命令的功能:从指定地址处开始运行程序,直到遇到断点或者程序正常结束。实验四 循环结构程序设计理解单重循环与多重循环程序的结构及执行过程;掌握循环控制指令的用法,会使用数据串操作指令编程;熟练掌握循环结构程序的设计方法和利用设置断点调试程序的方法。1、单循环程序已知当前数据段中DADT1和DADT2开始分别存放若干字节数据,数据个数相同,编制程序检查两数据块中数据是否相同,若相同,则在屏幕上显示1,否则显示0。【参考程序如下】DSEG SEGMENT;定义段。DATA1 DB ABCDEFG3定义字符串赋值给变量。DATA2 DB ABCDEF3GCNT DW 8;定义变量。DSE

8、G ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG;赋值。 MOV DS,AX MOV DL,31H; LEA SI,DATA1;取变量的偏移地址。 LEA DI,DATA2;取变量的偏移地址、首地址。 MOV CX,CNT DEC SI;SI自减。 DEC DI;DI自减。AGAIN:INC SI;自增。 INC DI;进行比较。 MOV AL,SI;地址的内容赋值给AL。 CMP AL,DI; LOOPZ AGAIN;如果相等,循环到AGAIN。 JZ DISP;若相等,则跳转到显示。 DEC DL;DL自减。DISP:

9、 MOV AH,2; INT 21H;中断语句。 MOV AH,4CH INT 21HCSEG ENDSEND START输入相同数据时:ABCDEFGG END START课堂实验内容:教材习题5.2,习题5.17。5.2:DATAS SEGMENT;输入数据段代码。DATAS ENDSSTACKS SEGMENT;输入堆栈段代码。STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS;MOV AX,DATASMOV DS,AXMOV CX,2;定义循环次数。MOV AH,1;中断,从键盘输入字符。INT 21HMOV DL,AL

10、;把AL赋值给DL。DEC DL;MOV AH,2;中断指令,显示单个字符。S:INC DL;自增1,CX自减1,CX不为0则继续循环。MOV AH,2DEC CXJNZ S;输入代码段代码。MOV AH,4CHCODES ENDS输入k,前导字符j,后续字符l,输出jkl,正确。5.17:MEM DB 4 DUP(?);定义数组。STACKSMOV AX,2A49H;给AX赋值。LEA BX,MEM;把数组MEM的首地址赋值给BX。MOV CH,4;给CH赋值。即循环次数。MOV DX,AX;把AX的值赋给DX。MOV CL,4;给CL赋值。即移位位数。AND DX,000FH;相与,取出最

11、低位。ADD DX,30HCMP DX,3AHJL NEXT;如果小于则跳转到NEXT。ADD DX,07H;如果大于就把DX加7。NEXT:MOV BX,DX;把DX赋值给BX下地址的内容,即数组。INC BX;BX自增1。ROR AX,CL;将AX循环右移CL位。DEC CH;CH自减。如果不为0则跳转。实验五 分支结构程序设计掌握条件转移指令的使用方法及指令对标志寄存器中各标志位的影响;掌握标志位和转移指令之间的关系;会用条件转移指令和无条件转移指令设计多分支结构程序;掌握设置断点调试程序的方法。简单分支结构判断方程ax2+bx+c=0是否有实根,若有实根则将字节变量tag置1,否则置0

12、(假设a、b、c均为字节变量,表达-127+127的数据)。当a=1,b=3,c=1时有实根。程序如下:运行结果如下:当a=1,b=1,c=1时有实根。(1)教材习题5.21。 array dw x,y,z mov cx,0 mov si,0 mov di,2 call bj mov di,4 mov si,2 cmp cl, 3 jnz show mov cl,2 show: add cx,30h mov ah,02h mov dl,clbj: mov ax,ds:arraysi mov bx,ds:arraydi cmp ax,bx jz xd ret xd:inc cx 1三个数都相等时

13、的运行结果:2三个数中有两个数相等的运行结果:3三个数都不相等时的运行结果:(2)已知DATAX和DATAY单元各存放一个带符号字节数据,从键盘上接收加()、减()、乘(*)或除(/)符号,然后完成相应运算,结果存入RLT单元。datax db 4hdatay db 5hrlt db 1 dup(?)mov bl,dataxmov bh,dataymov ah,01hcmp al,+je jiafa-je jianfa*je chf/je chufachufa:mov al,blsub ah,ahdiv bhmov bl,aljmp q5chf:mov al,bhmul bljianfa: s

14、ub bl,bhjiafa: add bl,bhq5: mov al,blmov cl,4shr al,cladd al,30hcmp al,39hjbe xianshi1add al,07hxianshi1: mov dl,almov rlt,almov ah,02hand al,0fhjbe xianshi2xianshi2:运行结果:1加:2减:3乘:4除:实验六 子程序设计掌握子程序的设计方法;理解子程序调用与返回指令的执行过程及堆栈的变化情况;掌握子程序调用过程中主程序与子程序间的参数传递方式,掌握现场的保护与恢复方法,会编制嵌套子程序。二、实验题1、上机验证教材例6.3十进制到十六

15、进制数的转换,仿照示例进行调试。decihex segmentdecihex main proc far repeat1:call decibin call crlf call binihex jmp repeat1 main endp decibin proc near mov bx,0 newchar: mov ah,1 sub al,30h jl exit cmp al,9d jg exit cbw xchg ax,bx mov cx,10d mul cx add bx,ax jmp newchar exit: decibin endp binihex proc near mov ch,

16、4 rotate: rol bx,cl and al,0fh add al,30h cmp al,3ah jl printit add al,7h printit: mov ah,2 dec ch jnz rotate binihex endp crlf proc near mov dl,0dh mov dl,0ah crlf endp decihex ends end main2、教材习题6.7。datas segment cj db 76,69,84,90,73,88,99,63,100,80 s6 db 0 s7 db 0 s8 db 0 s9 db 0 s10 db 0datas endscodes segmentcodes,ds:datas mov ax,datas lea si,cj ; 目标地址传送指令 mov cx,10 ; 循环十次 s: ;(子程序部分) mov al,si mov bl,10 div bl ; 取个位数 sub al,6 mov bl,al mov bh,0 inc s6bx ; 加1指令,跳转到下一个地址里面 inc si loop s ; 对子程序进行循环codes ends堆栈指针和栈顶由inc加1指令,跳转到下一个地址里面,从而使程序进行了循环运算。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1