ENTRY EQU 4 定义常量,entry为4
MOV BX,FOOSET TABtab的首偏移地址放到bx中,此时,bx指向tab中的第一个,即“1”
ADD BX,ENTRYbx加4,此时指向tab中的坦悉第五个让运乎,即‘5’
MOV AX,[BX] ax为一个字,所以把tab中的第五个和第六个悄灶放到ax中,即把 6(即06h)放到ah中,5(即05h)放到al中(高位在下,低位在上)
SUB02: 子程序CMP STR0 1,2 比较STR0 1是谈毕激否=2
JNB Y2 如果不数槐等跳转到 Y2
JMP QUIT 跳转到 QUIT
Y2:Y2
CALL ASDF 调用 ASDF 子程含袜序
@INPUT: @INPUT
MOV AH,0 设AH为0
INT 16H 调用 16H 中断
CMP AH,10H 'Q'比较 输入值是否为 10H (字符Q键值)
JZ SSS 是跳转到 SSS
CMP AH,13H 'R' 比较 输入值是否为 13H (字符R键值)
JNZ @INPUT 不是 转到 @INPUT 循环
JMP Y2 跳转到 Y2 循环
SSS: SSS
MOV STR0 1,0 设置 STR0 1为 0
MOV FLAG,0 设置 FLAG 标志 为 0
QUIT:QUIT
XOR DI,DI 清 DI
MOV CX,80*25 设置 CX为 80*25
MOV AX,720H 设置 AX为 720H
REP STOSW 清全屏
RET 返回
MOV DX,0F100H DX=0F100HMOV DH,[DX] DH=(0F100H)='A'=41HDX=4100H 取内存0f100h处存放的字符'A'存入DH,'A'的ASCII码为41H,DH为DX寄存器高位尘大,所以DX发生变化
MOV AH,[DX] AH=(04100H)='B'=42H 原理同上
所以正确的是AH中存放的是42H,不是41H,另外DX寄存器不能作为间接寻址寄虚粗存器,可以使用BX寄存器代差兄镇替。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)