汇编语言的一道简单题!求教

来源:百度知道 编辑:UC知道 时间:2024/06/09 01:42:31
设附加数据段ES中又遗一字符串'68DFYXC7J5KTR42',其名为TAB,在下面程序执行过后,CX的值是多少还有啊,ZF的值又是多少?
CLD

LEA DI,TAB
MOV CX,15
MOV AL,‘C'
REPNE SCASB
还有一题想麻烦大侠

设AX=5678H,执行下列程序后,AH的值是多少?AL的值是多少?
ADD AL,AH
DAA
XCHG AL,AH
ADC AL,56H
DAA

谢谢啊 !!谢谢
我是初学请大侠详细解答不胜感激
ps下面的那位做的两题都有点错!!但还是谢谢了!不过积分要送给另一位大侠了

LEA DI,TAB 读取字符串的首地址
MOV CX,15 重复执行的次数,repne指令要用
MOV AL,‘C' 比较的字符scasb要用
REPNE SCASB 将字符串的字符与C比较,相等就跳出循环
所以CX=8,ZF=1(因为比较相等,所以scasb会置zf为1,而repne就是因为zf为1才跳出循环)
ADD AL,AH 加法,加完al=ceh,ah=56h,cf=0(进位)
DAA BCD码调整,即把刚才的56+78看成10进制的结果也转成10进制的样子,所以al=34h,有进位cf=1
XCHG AL,AH 交换al=56h ah=34h
ADC AL,56H 带进位加,al=adh
DAA bcd码调整,al=13h,ah=34h

1、扫描完一个CX值减1,扫描到7个找到'C',扫描结束,CX=9,ZF=1
2、前两条算56+78=134,(AL)=34H,(AL)不变,(AH)=56H,(CF)=1交换后,(AL)=56H,(AH)=34H,最后两条算34+56+1=91,(AL)=91H,,(AH)不变。AH=34H,AL=91H