下个星期考试了,如果有一门不及格,就KILLER!!
相信很多人都会,对你来说太容易啦~~
1:一组数组中共100个字节元素,首元素在数据段中偏移地址为0050H,统计其中负数的个数并送入CL中。
附一点代码:
- TDATA SEGMENT //数据段开始
- BUUFER DB ...... //定义数据,怎么定义啊?或者不要?
- TDATA DW ? //负数的个数定义为字
- TDATA ENDS //数据段结束
- TSTACK SEGMENT STACK //堆栈段开始
- DB 100 DUP(?) //预留出100字节空间
- TSTACK ENDS //堆栈段结束
- TCODE SEGMENT //代码段开始
- ASSUME CS:TCODE,DS:TDATA.SS:TSTACK //定义段名和段寄存器
- START : MOV AX,TDATA // 通过AX中转给
- MOV DS,AX DS,SS
- MOV AX,TSTACK 寄存器
- MOV SS,AX 赋值//
- MOV BX,0050H BUFFER //将BUFFER数据区的偏移地址送入BX
- MOV CX,8 //数据个数送入CX
- MOV CL,0 //寄存器清0,CL用于存放负数个数
- MOV AX,[BX] //取数据送入AX
- CMP AX,0 //数据和0相比
- JGE TT //数据>=0,转TT
- INC DX //数据<0,为负数,负数个数加一
- TT : INC BX //地址加1,指向下一个数
- LOOP T //隐含(CX)-1<>0,转T循环
- MOV TOTAL,DX //(CX)-1=0时,负数总个数存入TOTAL单元
- MOV AH,4CH //返回操作系统
- INT 21H //结束当前程序
- TCODE ENDS //代码段结束
- END START //源程序结束
复制代码 上面那些代码是我参照书搞的,感觉很多错误!请帮忙改正!谢谢!
2:编写一个程序,统计D_ARRAY数组中零、正数和负数的个数。
老师说可以参照上面的修改,可是我不懂啊!~帮帮忙解释下啦,最好有代码哦~
3:下列变量各占多少字节?
1.ALPHA DW 58H,66H
2.BETA DB 4 DUP(2),'$'
3.GAMMA DD 10 DUP(2845H,23667745H)
4.GOOD DB 5 DUP(4 DUP(3,2,'ABC'))
5.FIRST DB 'I am a student',0DH,0AH,'$' //是零不是“O”
这个怎么算?
4:下列指令访问那些段?(-----不要笑我笨啊-----)
1 MOV AX,[BX+8]
2 MOV [BP+2104H],AL
3 MOV AX,ES:[SI+15]
4 MOV DS:[BP+15]
5 MOVSW
6 STOSB
各路高手不要吝啬啊,花点时间帮忙一下啦,小鸟感谢呢~ |