答:区别:伪指令语句是能执行的语句,硬指令语句是CPU可以执行的语句。
伪指令语句主要作用是为汇编程序提供解释说明,它仅仅是在汇编过程中告诉汇编程序如何进行汇编。
MOV BYTE PTR[BX], 1000
答:数据类型不匹配,目的地址单元是字节单元,1000大于255。无法存放。
MOV BX, OFFSET[SI]
答:OFFSET后只能跟标识符。
CMP MYBYTE1, MYBYTE2
答:CMP的两个操作数不能同时在存储器中。
MOV AL, MYBYTE1+MYBYTE2
答:运算符只能对常数进行操作,不能对变量进行操作。
SUB AL, MYWORD
答:数据类型不匹配,AL是8位的,MYWORD是16位变量。
JNZ MYWORD
答:MYWORD是变量,其指的单元中存放的是操作数,不能用做跳转入口。
.model small
.stack
.data
num equ 5
datalist dw -1,0,2,5,4,?
.code
.startup
mov bx, offset datalist
mov CX, num
xor ax, ax
again:
add ax, [bx]
inc bx
inc bx
loop again
(1) 若DX>DI,转到ABOVE执行
(2) 若AX>SI,转到GREATER执行。
(3) 若CX=0,转到ZERO执行
(4) 若AX-SI产生溢出,转到OVERFLOW执行。
(5) 若SI≤AX,转到LESS_EQ执行。
(6) 若DI≤DX,转到BELOW_EQ执行。
答:
(1) CMP DX,DI JA ABOVE
(2) CMP AX,SI JG GREATER
(3) CMP CX,0 JE ZERO
(4) CMP AX,SI
JO OVERFLOW
(5) CMP AX,SI
JGE LESS_EQ
(6) CMP DX,DI
JAE BELOW_EQ
LEDTABLE DB 0C0H,0FGH,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0C1 H,86H,8EH
它依次表示09AF这16个数码的显示代码。编写一个程序实现将LEDNUM中的一个数字(09,AF)转换成对应的LED显示代码
.model small
.stack 256
.data
LEDTABLE DB 0c0h,0a4h,0b0h,99h,92h,82h.0f8h
DB 80h,90h,88h,83h,0c6h,0clh,86h,8eh
LEDNUM DB?
.code
.startup
mov bx,offset LEDTABLE
mov al,LEDNUM
xlat ;al 中存在对应的LED显尿代码
exit 0