简单的汇编题目!(我是初学者,麻烦大家进来看看帮帮忙啊)

来源:百度知道 编辑:UC知道 时间:2024/08/21 23:51:07
最近在看汇编语言,初学者啊,有些问题不懂啊,麻烦各位高手解释下啊!题目都很简单,大家看看应该能解释啊。
TAB DB 2,4,6,8
CNT EQU 'A'
MOV AX,CNT GT 20H
MOV BX,LENGTH TAB
问执行下段程序,寄存器AX的值( ),寄存器BX的值( )
答案是FFFFH 和1.
完全不知道这是怎么出来的啊!BX的值为什么不是4啊?还有MOV AX,CNT GT 20H是什么意思啊?

1、指令MOV AX,CNT GT 20H中的CNT GT 20H是一个逻辑表达式,CNT是一个常量,前面已经赋值,CNT=‘A’,大写字母'A'的ascii码是:41h,大于20h,所以这个表达式的值是‘真’(汇编语言中,真=-1,假=0,许多高级语言也是这样规定的),-1的16位补码表示就是FFFFH。
2、MOV BX,LENGTH TAB
BX=1
长度属性操作符(LENGTH)是针对内存变量的操作符,它返回重复操作符DUP中的重复数。如果有嵌套的DUP,则只返回最外层的重复数;如果没有操作符DUP,则返回1。
实际上,长度属性操作符(LENGTH)是返回数组元素的个数。