文档详情

微机原理与接口技术编程作业.pdf

发布:2018-03-25约2.7万字共31页下载文档
文本预览下载声明
微机原理与接口技术作业 学院:XXXX学院 班级:XXXXXXXXXX 学号:XXXXXXXXXX 姓名:XX 13. 编写一个程序,统计在双字变量DDVAR 的内容中二进制位是1 的位数,并存 入变量COUNT 中。 答:【源码】 DATA SEGMENT DDVAR DD 0FFFFFFFH DDL EQU WORD PTR DDVAR DDH EQU WORD PTR DDVAR+2 COUNT DW 0 DATA ENDS STACK SEGMENT DW 100H DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV DX,DDL MOV BX,8000H MOV CX,16 DDLL: CALL COUNT0 LOOP DDLL MOV DX,DDH MOV BX,8000H MOV CX,16 DDHH: CALL COUNT0 LOOP DDHH MOV AX,COUNT MOV BL,10 DIV BL ADD AL,0 ADD AH,0 PUSH AX MOV DL,AL MOV AH,02H INT 21H POP AX MOV DL,AH MOV AH,02H INT 21H MOV AX,4C00H 1/30 INT 21H COUNT0 PROC NEAR MOV AX,DX OR AX,BX CMP AX,DX JZ DONE K: SHR BX,1 RET DONE: INC COUNT JMP K COUNT0 ENDP CODE ENDS END START 【源码说明】 预先在代码中设置双字变量DDVAR 的数值为0FFFFFFFH,即所有二进制位共有28 个1,可用于代码检验。双字可拆分成两个字,再分别逐位用1 与各二进制位相 或的结果1 与原二进制位数值进行比较,若相等(说明原先此处即为1)则COUNT 值加 1,反之(说明与1 相或的结果 1 与原值不等,原值为0)则COUNT 值保持 不变。最后程序输出COUNT 数值。 【运行结果】 可执行文件名为4_13.exe,如图1所示,程序输出结果为28,表明双字变量DDVAR 的内容中二进制位是1 的位数共有28 个,运行结果正确。 图 1 14. 假设有三个字变量、和,编写一个程序,它可判断它们能否构成一个三 角形,若能则CF 为1,否则CF 为0。 答:【源码】 DATA SEGMENT A DW ? B DW ? C DW ? MSG1 DB Enter the first number (0-9) :,$ MSG2 DB 0AH,0DH,Enter the second number (0-9) :,$ MSG3 DB 0AH,0DH,Enter the third number (0-9) :,$ RESULT0 DB 0AH,0DH,NO!,$ 2/30 RESULT1 DB 0AH,0DH,YES!,$ DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX LEA DX,MSG1 MOV AH,9 INT 21H
显示全部
相似文档