【发布时间】:2011-12-10 20:08:54
【问题描述】:
; multi-segment executable file template.
data segment
string db "THis is LuxUR in Summer."
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
mov bx, offset string
mov al, 0 ; lower letters in word
mov dl,0 ; maximum letters
check:
mov cl, 41h ; from A-Z
mov ch, 5Ah
mov ah, [bx]
cmp ah, "."
je dot
cmp ah, " "
je empty
jne letters
letters:
cmp ah, cl
je uppercase
inc cl
cmp cl, ch
jne letters
mov cl, 61h ; a-z
mov ch, 7Ah
lowercase:
inc al
cmp dl,al
jl maksimum
inc bx
jmp check
maksimum:
mov dl, al
inc bx
jmp check
uppercase:
inc bx
jmp check
empty:
mov al, 0
inc bx
jmp check
dot:
我的程序计算 al 中单词中的小写字母。然后放入dl。 (最多小写) 我有名称为点的标签。在那里我必须放一些指令,我可以通过它打印我的结果:
Summer 是小写字母 5 最多的单词
我尝试了一些指令来做到这一点,但它不起作用。
【问题讨论】:
-
当你说它不起作用时,你得到 any 输出吗?如果有,你会得到什么?
-
我的结果在dl寄存器中,是5,
-
所以你得到了正确的结果,但你只是在问如何打印它?是否允许使用 DOS 中断?
-
我想打印那个数字 (5) 和 Summer 这个词,因为它是小写字母最多的词。我不知道要使用哪个指令,在屏幕上打印
-
是的,这是我的问题,如何打印 5 和 Summer