帮忙解释下下边汇编程序,本人菜鸟,最好一行一行解释,挥泪求。。。。

2024-11-25 23:19:31
推荐回答(1个)
回答1:

挥泪求 怎么不给点分?

ORG 00H
ORG是告诉编译器下一条汇编语句的偏移地址
DATABUF DB 80H, 0AH,0BH,0FH,90H,23H,0
这是DATABUF的偏移地址就为0
...
MOV BX,OFFSET DATABUF ;把DATABUF的偏移地址赋给BX
MOV CX,00H
CONT: MOV AL,[BX] ;把[BX]里的值赋给AL
CMP AL,0 ;比较AL和0 这个字符串以0为结束

JZ END1 ;相等跳转到END1 表示结束这段程序
TEST AL,80H ;用AL与80H测试 相当于AND AL,80H 但不改变AL中的值
;这个测试的作用是 检测AL中的数字是否为负 因为如果AL中的值
;为负的话AL的最高位必为1 也就是80H

JNZ NEXT ;接上面的如果不是负数就跳到下一个数 NEXT:

INC CX ;否则就增加CX中的值 CX中的值表示字符串中有多少个负数

;大于等于80H

NEXT: INC BX ;增加BX的值 下一个字符的地址偏移

JMP CONT ;跳转到CONT

END1:...