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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

编写程序Word格式文档下载.docx

1、公共的程序段如下:MOV DI, DSMOV ES, DI(1) MOV CX, 132MOV AL., ;空格的ASCII码送AL寄存器LEA DI, PRINT_LINEREP STOSB(2) MOV CX, 9MOV AL., -LEA DI, STUDENT_ ADDRREPNE SCASBJNE NO_DASHNO_DASH: (3) MOV CX, 9STDADD DI, 9-1INC DI(4) MOV CX, 30MOV AL, ;LEA DI, STUDENT_NAMEREPE SCASBJNE NEXTMOV CX, 30MOV AL, * ;“*”的ASCII码送AL寄

2、存器(5) MOV CX, 30LEA SI, STUDENT_NAMEREP MOVSBMOV CX, 9LEA SI, STUDENT_ADDR+9-1LEA DI, PRINT_LINE+132-13.32编写一程序段:比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串则执行NEW_LESS;否则顺序执行程序。MOV CX, 5MOV DI, SEG OLDSMOV DS, DIMOV ES, DILEA SI, OLDSLEA DI, NEWSREPE CMPSBJNE NEW_LESSNEW_LESS:3.47请编写一程序段,要求把ECX、EDX和ESI

3、的内容相加,其和存入EDI寄存器中(不考虑溢出)。MOV EDI,0 也可为: MOV EDI,ECXADD EDI,ECX ADD EDI,EDXADD EDI,EDX ADD EDI,ESIADD EDI,ESI3.49试编写一程序段,要求把BL中的数除以CL中的数,并把其商乘以2,最后的结果存入DX寄存器中。MOV AL,BLMOV AH,0 ;假定为无符号数,否则用CBW指令即可DIV CLMOV AH,0SHL AX,1 ;逻辑左移1位MOV DX,AX3.51试编写一程序段,要求在长度为100H字节的数组中,找出大于42H的无符号数的个数并存入字节单元UP中;找出小于42H的无符号

4、数的个数并存入字节单元DOWN中。JMP BEGIN ;无条件转移UP DB 0DOWN DB 0TABLE DB 100H DUP (?) ;数组BEGIN:MOV CX,100HMOV BX,-1 ;数组下标MOV SI,0MOV DI,0L1:INC BXCMP TABLEBX,42HJA L2 ;高于JB L3 ;低于JMP L4 ;否则跳到L4L2:INC SI ;UPJMP L4 L3:INC DI ;DOWNL4:LOOP L1MOV UP,SIMOV DOWN,DI4.1 1试写出一个完整的数据段DATA_SEG,它把整数5赋予一个字节,并把整数-1,0,2,5和4放在10字数

5、组DATA_LIST的头5个单元中。然后,写出完整的代码段,其功能为:把DATA_LIST中头5个数中的最大值和最小值分别存入MAX和MIN单元中。DATA_SEG SEGMENTNUM DB 5DATA_LIST DW -1, 0, 2, 5, 4, 5 DUP (?MAX DW ?MIN DW ?DATA_SEG ENDS;-CODE_SEG SEGMENTMAIN PROC FARASSUME CS: CODE_SEG, DS: DATA_SEGSTART: PUSH DS ;设置返回DOSSUB AX, AXPUSH AXMOV AX, DATA_SEG ;给DS赋值MOV DS, A

6、XMOV CX, 4 ;程序段开始LEA BX, DATA_LISTMOV AX, BXMOV MAX, AXMOV MIN, AXROUT1: ADD BX, 2CMP AX, MAXJNGE ROUT2ROUT2: CMP AX, MINJNLE ROUT3ROUT3: LOOP ROUT1 ;程序段结束RETMAIN ENDPCODE_SEG ENDSEND START4.17写一个完整的程序放在代码段C_SEG中,要求把数据段D_SEG中的AUGEND和附加段E_SEG中的ADDEND相加,并把结果存放在D_SEG 段中的SUM中。其中AUGEND、ADDEND和SUM均为双精度数,A

7、UGEND赋值为99251,ADDEND赋值为 -15962。程序如下:D_SEG SEGMENTAUGW LABEL WORDAUGEND DD 99251SUM DD ?D_SEG ENDS ;以上定义数据段E_SEG SEGMENTADDW LABEL WORDADDEND DD -15962E_SEG ENDS ;以上定义附加段C_SEG SEGMENT C_SEG, DS: D_SEG, ES: E_SEG PUSH DS ;MOV AX, D_SEGMOV DS, AX ;MOV AX, E_SEGMOV ES, AX ;给ES赋值MOV AX, AUGW ;以下6条指令进行加法计

8、算MOV BX, AUGW+2ADD AX, ES: ADDWADC BX, ES: ADDW+2 ;不考虑有符号数溢出MOV WORD PTR SUM, AXMOV WORD PTR SUM+2, BXC_SEG ENDS ;以上定义代码段5.1 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。BEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用INT 21HCMP AL, a ;输入字符z吗?JA STOPSUB AL, 20H ;转换为大写字母,用AND AL, 1101 1111B也可MOV DL, AL ;显示一个字符的DOS调用MOV AH, 2

9、;从键盘输入第二个字符JMP BEGINSTOP: RET5.2 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。DEC AL ;得到前导字符准备显示三个字符MOV CX, 3DISPLAY: MOV AH, 2 ;INC DLLOOP DISPLAY5.3 将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL和DL中。DSEG SEGMENTSTORE DB 4 DUP (?DSEG ENDS MOV CL, 4 ;右移四次MOV CH, 4 ;循环四次LEA BX, STOREA10: MOV DX, AXAND DX

10、, 0FH ;取AX的低四位MOV BX, DL ;低四位存入STORE中SHR AX, CL ;DEC CHJNZ A10 ;循环四次完了码?B10: MOV DL, STORE ;四组数分别放在AL、BL、CL和DL中MOV CL, STORE+1MOV BL, STORE+2MOV AL, STORE+35.4 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示MATCH, 若不相同则显示NO MATCH。STRING1 DB I am a student.STRING2 DB I am a student!YES DB MATCH, 0DH

11、, 0AH, $NO DB NO MATCH, 0DH, 0AH, $-CSEG SEGMENT CSEG, DS: DSEG, ES: DSEGPUSH AXMOV AX, DSEG LEA SI, STRING1 ;设置串比较指令的初值LEA DI, STRING2MOV CX, STRING2 - STRING1REPE CMPSB ;串比较JNE DISPNOLEA DX, YES ;显示MATCHJMP DISPLAYDISPNO: LEA DX, NO ;显示NO MATCH MOV AH, 9 ;显示一个字符串的DOS调用CSEG ENDS ;5.5 试编写一程序,要求能从键盘接

12、收一个个位数N,然后响铃N次(响铃的ASCII码为07)。SUB AL, 0JB STOP ;0吗?CMP AL, 9 ;9吗?CBWMOV CX, AX ;响铃次数NJCXZ STOPBELL: MOV DL, 07H ;准备响铃显示一个字符的DOS调用,实际为响铃CALL DELAY100ms ;延时100msLOOP BELL5.6 编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。COUNT EQU 20ARRAY DW 20 DUP (?) ;存放数组COUNT1 DB 0 ;存放正数的个数ARRAY1 DW 20

13、DUP (?存放正数COUNT2 DB 0 ;存放负数的个数ARRAY2 DW 20 DUP (?存放负数ZHEN DB 0DH, 0AH, The positive number is:, $ ;正数的个数是:FU DB 0DH, 0AH, The negative number is:负数的个数是:CRLF DB 0DH, 0AH, $MAIN PROC FAR MOV CX, COUNTLEA BX, ARRAYLEA SI, ARRAY1LEA DI, ARRAY2BEGIN1: MOV AX, BXCMP AX, 0 ;是负数码?JS FUSHUMOV SI, AX ;是正数,存入正

14、数数组INC COUNT1 ;正数个数+1ADD SI, 2JMP SHORT NEXTFUSHU: MOV DI, AX ;是负数,存入负数数组INC COUNT2 ;负数个数+1ADD DI, 2 ADD BX, 2LOOP BEGIN1LEA DX, ZHEN ;显示正数个数MOV AL, COUNT1CALL DISPLAY ;调显示子程序LEA DX, FU ;显示负数个数MOV AL, COUNT2DISPLAY PROC NEAR ;显示子程序MOV AH, 9 ;AAM ;将(AL)中的二进制数转换为二个非压缩BCD码ADD AH, 0 ;变为09的ASCII码MOV DL,

15、AHMOV AH, 2 ;ADD AL, 0 ;MOV DL, ALLEA DX, CRLF ;显示回车换行DISPLAY ENDP ;显示子程序结束5.7 试编写一个汇编语言程序,求出首地址为DATA(DATA数组)的100D字数组中的最小偶数,并把它存放在AX中。 MOV BX, 0 MOV CX, 100COMPARE: MOV AX, DATABX ;取数组的第一个偶数ADD BX, 2TEST AX, 01H ;是偶数吗?(偶数与01H逻辑与,不是0,不是偶数)LOOPNZ COMPARE ;不是,比较下一个数JNZ STOP ;没有偶数,退出JCXZ STOP ;最后一个数是偶数,

16、即为最小偶数,退出COMPARE1: MOV DX, DATABX ;取数组的下一个偶数TEST DX, 01H ;是偶数吗?JNZ NEXT ;CMP AX, DX ;(AX)(DX)吗?JLE NEXTMOV AX, DX ;(DX),则置换(AX)为最小偶数 LOOP COMPARE15.8 把AX中存放的16位二进制数K看作是8个二进制的“四分之一字节”。试编写程序要求数一下值为3(即11B)的四分之一字节数,并将该数(即11B的个数)在终端上显示出来。(例如:1010101010101010分为10 10 10 10 10 10 10 10 10) MOV DL, 0 ;计数初始值M

17、OV CX, 8 TEST AX, 03H ;是数03吗?JNZ NOEQUAL ;不是,转走INC DL ;是,计数NOEQUAL: ROR AX, 1 ;准备判断下一个数ROR AX, 1LOOP COMPAREADD DL, 0 ;将计数值转换为ASCII码进行显示5.9 试编写一个汇编语言程序,要求从键盘接收一个四位的16进制数(1234H),并在终端上显示与它等值的二进制数。 MOV BX, 0 ;用于存放四位的16进制数MOV CH, 4MOV CL, 4INPUT: SHL BX, CL ;将前面输入的数左移4位MOV AH, 1 ;从键盘取数CMP AL, 30H ;0吗?JB

18、 INPUT ;不是0F的数重新输入CMP AL, 39H ;是09吗?JA AF ;不是,转AF的处理AND AL, 0FH ;转换为:0000B1001BJMP BINARYAF: AND AL, 1101 1111B ;转换为大写字母CMP AL, 41H ;又F吗?JA INPUT ;1010B1111BADD AL, 9BINARY: OR BL, AL ;将键盘输入的数进行组合DEL CHJNZ INPUTDISPN: MOV CX, 16 ;将16位二进制数一位位地转换成ASCII码显示DISP: MOV DL, 0ROL BX, 1RCL DL, 1OR DL, 30HLOOP DISP5.10 设有一段英文,其字符变量名为ENG,并以$字符结束。试编写一程序,查对单词SUN在该文中的出现次数,并以格式“SUN:xxxx”显示出次数。ENG DB Here is sun, sun ,$DISP DB SUN:DAT DB 0000 , 0DH, 0AH, $KEYWORD DB sunMOV ES

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

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