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

设附加数据段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个回答  2008-10-09
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

关于汇编语言的一道简单题
PARTNO DW ? 这一句是定义内存空间,占用一个字,即两个字节 PNAME DB 16 DUP(?)这一句是定义16个字节内存空间。COUNT DD ? 这一句是定义一个双字占4个字节内存空间.PLENTH EQU $-PARTNO 这一句是定义一个常数PLENTH,它的大小等于当前地址-PARTNO地址 也就等于2+16+4=22,其中$代表当前地址。

高分!!汇编语言的若干问题
1、汇编语言是编译型还是解释型?(或许汇编语言不能这么表述)编译型 2、汇编语言是否像高级语言一样,即便是相同的硬件也有很多种汇编语言?一般只有一种 3、汇编语言编写的程序在不同硬件上未必通用,这是因为硬件(如cpu)机器码与功能不同,那么是否像java一样,用一种汇编语言写一次汇编源码,在...

汇编语言div和dd指令问题
在 data segment 之下,DD 伪指令,就在第0字节~第3字节,存放了32位数 100001,低字节在前。当把 data 送到 DS 之后,DS:[0] ~ DS:[3],即为 100001。DS:[0] ~ DS:[1],即为 100001 的低 16 位数;DS:[2] ~ DS:[3],即为 100001 的高 16 位数。同理,还有两个 DW 伪指令...

单片机汇编语言求教。。。八个灯依次亮,然后熄灭。但是程序到第七个...
LJMP T0ISR ORG 0030H MAIN:MOV TMOD,#01H MOV TH1,#3CH MOV TL1,#0B0H SETB ET0 SETB TR0 MOV B,#0 SETB EA MOV R0,#8 ;改动部分 就是把循环次数由7改为8 MOV P3,#0FEH LOOP:CLR 00H JNB 00H,MOV A,P3 RL A MOV P3,A DJNZ R0,LOOP MOV P3,#0FFH SJMP T0ISR...

这个汇编程序有什么问题!求教!
一、两条指令有问题。(第23,24两行)mov byte ptr di, [bx]cmp di, ' '应当改为:mov DL, [bx]cmp DL, ' 'byte ptr 是用于指定内存操作数类型的,不能用在寄存器上。按你程序的要求,逐字节处理单字节的字符,寄存器应当使用8位的DL,而不能用16位的di 。在上面的mov 指令中,DL...

用汇编语言中断函数实现按下K1灯全亮,按下K2灯全灭
我说,例如,如哈萨克斯坦,设置定时中断时间为1分钟,然后设置一个变量INT_2分配到两分钟,然后启动定时器分钟到INT_2减一的时间还有两分钟当的零INT_2的两分钟,灯上面的灯

汇编语言中如何计算出两个数的比例
MOV EAX, 60MOV ECX, 0A0H ;160,百分比=0.375 = 37.5%XOR EDX, EDXDIV ECX ;商数EAX=0,余数EDX=60MOV N1, EAX ;存整数0;---MOV EAX, 10MUL EDX ;余数乘以10=600XOR EDX, EDXDIV ECX ;商数EAX=3,余数EDX=120MOV N2, EAX ;存...

x86汇编机器码的问题
机器语言,可不是这么简单就能理解的。这三条指令,是指定寄存器的名称,把它们的内容进行传送。C0,并不能理解成ax中的内容。

用汇编语言编写一个将8位二进制数转化成BCD码的程序
除以10,余数就是个位;再除以10,就行了。

求教 汇编语言中 什么是有效地址
在8086中。 20位的物理地址(就是数据存储的实际地址)=16位的段地址*16+16位的偏移量 实际地址就是上式中20位的物理地址

相似回答
大家正在搜