汇编语言问题,恳请高手指点。。。。。。

来源:百度知道 编辑:UC知道 时间:2024/05/23 02:22:32
设有一字符串存放在以STRING为首址的数据区中,其最后一个字符′.′(其中ASCⅡ码为2EH)作为结束标志,编程序,计算该字符串的长度送LEN字节单元。又知被操作的字符串为′IBM PC 8088CPU.′

data segment
STRING DB 'IBM PC 8088CPU.' ;源串
long DB $-STRING ;计算串长
LEN DB 0 ;LEN字节单元
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax ;找数据段段址
mov al,long ;取该字符串长度
mov LEN,al ;串长送LEN字节单元
mov ah,4ch
int 21h
code ends
end start

晕,这么简单的操作,建议还是自己完成,不能老指望别人。
8086/8088汇编还是非常简单易学的,只要多花点时间,还是很容易及格的。

data segment
string db 'IMB PC 8088CPU.'
len db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea bx,string
xor ax,ax
loop1:
mov al,[bx]
cmp al,2EH
inc ah ;ah作为记数器,因为inc指令不影响标志位,所以先计数,后判断,这样是因为最后一个字符也算在长度内。
je out
inc bx
jmp short loop1
out:mov len,ah
code ends
end start

楼主老兄啊,这个不需要编程序就可以知道的。想必你是初学,当然理解。

STRING db 'IBM PC 8088CPU.'
LEN db $-STRING