汇编语言上机习题.docVIP

  • 127
  • 0
  • 约 10页
  • 2016-10-08 发布于重庆
  • 举报
汇编语言上机习题

汇编语言上机习题 0:键盘输入字单元number的16进制数值,统计结果存放在变量one中,并且输入one的内容。查询1的个数 1 不用串操作指令,把字符串string1的内容传送到字符串string2,字符长度为count。 2 试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII码为07)。 3 把AX中存放的16位二进制数K看作是8个二进制的四分之一字节。试编写一程序片段,要求数一下值为3(即11B)的四分之一字节数,并将该数在终端上显示出来。 BEGIN: MOV DL, 0 ;计数初始值 MOV CX, 8 COMPARE: TEST AX, 03H ;是数03吗? JNZ NOEQUAL ;不是,转走 INC DL ;是,计数 NOEQUAL: ROR AX, 1 ;准备判断下一个数 ROR AX, 1 LOOP COMPARE ADD DL, ‘0’ ;将计数值转换为ASCII码 MOV AH, 2 ;进行显示 INT 21H STOP: RET 4 有一个首地址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。 DSEG SEGMENT MEM DW 100 DUP (?) DSEG ENDS ;-------------------------------------------------------------------------- CSEG SEGMENT MAIN PROC FAR ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;设置返回DOS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX ;给DS赋值 BEGIN: MOV SI, (100-1)*2 ;(SI)指向MEM的末元素的首地址 MOV BX, -2 ;地址指针的初值 MOV CX, 100 COMP: ADD BX, 2 CMP MEM [BX], 0 JZ CONS LOOP COMP JMP FINISH ;比较完了,已无0则结束 CONS: MOV DI, BX CONS1: CMP DI, SI ;到了最后单元码? JAE NOMOV MOV AX, MEM [DI+2] ;后面的元素向前移位 MOV MEM [DI], AX ADD DI, 2 JMP CONS1 NOMOV: MOV WORD PTR [SI], 0 ;最后单元补0 LOOP COMP FINISH: RET MAIN ENDP CSEG ENDS ;以上定义代码段 ;-------------------------------------------------------------------------- END START 5 在STRING到STRING+99单元中存放着一个字符串,试编制一程序测试该字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置0。 DSEG SEGMENT STRING DB 100 DUP (?) DSEG ENDS ;-------------------------------------------------------------------------- CSEG SEGMENT MAIN PROC FAR ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;设置返回DOS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX ;给DS赋值 BEGIN: MOV SI, 0 ;(SI)作为地址指针的变化值 MOV CX, 100 REPEAT: MOV AL, STRING [SI] CMP AL, 30H JB GO_ON CMP AL, 39H JA GO_ON OR CL, 20H ;存在数字把CL的第5位置1 JMP EXIT GO_ON: INC SI LOOP REPEAT AND CL, 0DFH ;不存在数字把CL的第5位置0 EXIT: RET MAIN ENDP CSEG ENDS ;以上定义代码段 ;-------------------------------------------------------------------------- END START

文档评论(0)

1亿VIP精品文档

相关文档