汇编语言aaa指令,汇编语言中aaa
作者:admin 发布时间:2024-01-28 04:30 分类:资讯 浏览:52 评论:0
8086汇编中的AAA指令有什么作用?什么是非压缩的BCD格式?
1、你问aaa的用法,简单的说就是用于非压缩BCD码加法调整。就是经过AAA指令后结果假如是24h,那么他表示的是24。就是把结果转换成直观的十进制。
2、该指令跟在以AL为目的操作数的ADD或ADC指令之后,对AL进行非压缩BCD码调整;如果调整中产生了进位,则将进位1加到AH中,同时CF=AF=1;否则CF=AF=0。AAA指令对其他标志无定义。使AL的高4位清0。
3、非压缩BCD码:非压缩型BCD码一个字节可存放一个一位十进制数,其中高4位的内容不做规定(也有部分书籍要求为0,二者均可),低4位二进制表示该位十进制数。
4、aaa的调整规则为看al,和af的值,如果 al中的低四位大于9或者af=1,那么就将al加6,ah加1,且将af,cf设置为1,否则将af,cf设置为-。然后不管al和af结果为什么都将al的高四位清零。
汇编指令aaa的问题
1、变量AAA所在的双字单元是12345678H,AAA+4双字单元是10001000H。这些数据在内存是连续存放的。另外,8086/8088的汇编中,AAA是一条指令,不能作为变量名。
2、aaa的调整规则为看al,和af的值,如果 al中的低四位大于9或者af=1,那么就将al加6,ah加1,且将af,cf设置为1,否则将af,cf设置为-。然后不管al和af结果为什么都将al的高四位清零。
3、ADD指令:09H + 07H = 10H --存AL中,CF=0,AF=1,AH仍为07H不变。
4、你问的AAA为非压缩BCD码调整,即如果al低四位大于9,就将al加6,ah加一,al高四位清零,cf、af置1。你问aaa的用法,简单的说就是用于非压缩BCD码加法调整。就是经过AAA指令后结果假如是24h,那么他表示的是24。
汇编语言aaa和daa问题。
第一题:ADD指令:56H + 15H = 6BH(CF=0,AF=0)--存AL中。DAA对AL调整--71H 因为AL低4位超过9,所以低4位加6,并将AF置1。高4位不超过9,且CF=0,所以高4位不加6,也不将CF置1。
在汇编里面AAA是ASCII码调整指令,DAA是BCD码调整指令。
DAA指令是用于压缩的BCD码调整的,非压缩的BCD码加法调整应当用AAA指令。 两个两位的非压缩BCD码相加,考虑进位,需要按三位非压缩BCD码加法处理。
aaa的调整规则为看al,和af的值,如果 al中的低四位大于9或者af=1,那么就将al加6,ah加1,且将af,cf设置为1,否则将af,cf设置为-。然后不管al和af结果为什么都将al的高四位清零。
你问的AAA为非压缩BCD码调整,即如果al低四位大于9,就将al加6,ah加一,al高四位清零,cf、af置1。你问aaa的用法,简单的说就是用于非压缩BCD码加法调整。就是经过AAA指令后结果假如是24h,那么他表示的是24。
关于汇编AAA指令
1、ADD指令:09H + 07H = 10H --存AL中,CF=0,AF=1,AH仍为07H不变。
2、在汇编里面AAA是ASCII码调整指令,DAA是BCD码调整指令。
3、你问的AAA为非压缩BCD码调整,即如果al低四位大于9,就将al加6,ah加一,al高四位清零,cf、af置1。你问aaa的用法,简单的说就是用于非压缩BCD码加法调整。就是经过AAA指令后结果假如是24h,那么他表示的是24。
4、该指令跟在以AL为目的操作数的ADD或ADC指令之后,对AL进行非压缩BCD码调整;如果调整中产生了进位,则将进位1加到AH中,同时CF=AF=1;否则CF=AF=0。AAA指令对其他标志无定义。使AL的高4位清0。
5、可以看出:数字 0~9的ASCll码是一种非组合的BCD码,因为其高4位为0011,而低 4 位才是以8421码表示的十进制数,这符合非组合BCD码高4位无意义(定为 0)的规定,这也是AAA指令又称为ASCll码加法调整指令的原因。
6、aaa的调整规则为看al,和af的值,如果 al中的低四位大于9或者af=1,那么就将al加6,ah加1,且将af,cf设置为1,否则将af,cf设置为-。然后不管al和af结果为什么都将al的高四位清零。
汇编指令详解
汇编语言查表指令 XLAT 查表指令 XLAT 指令格式:XLAT TABLE 其中TABLE为一待查表格的首地址。指令功能:把待查表格的一个字节内容送到AL累加器中。
比较的结果有三种可能性:相等、大于、小于。在比较完成后,CPU会根据cmp是一条汇编指令,用于比较两个数据的大小关系,并设置相应的标志位,以供后续的分支指令使用。cmp指令详解 例:cmp oprd1,oprd2。
TST指令是数据处理指令,用于把一个寄存器的内容和另一个寄存器的内容或立即数进行按位的与运算,并根据运算结果更新CPSR中条件标志位的值。 例如:TST R1,#%1用于测试在寄存器R1中是否设置了最低位。
数据扩展指令,将双字数据扩展为四字类型。CDQ—Convert Double to Quad (386+),该指令把edx扩展为eax的高位,也就是说变为64位。
下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。试把空白处填上适当指令。
所以在机器指令中要指明指令进行的是字操作还是字节操作。对于这个问题汇编语言中用一下方法处理。LABEL可以使同一个变量具有不同的类型属性。
相关推荐
你 发表评论:
欢迎- 资讯排行
- 标签列表
- 友情链接