伪指令实例2
;eg2.找出字符串string中ASC码最大的字符。
assume cs:code,ds:data
data segment
string db '123Hello!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,offset string
mov cl,[bx] ;给cl赋初值;用cl存储字符串中ASC码最大的字符的ASCII码的16进制数据
x1: cmp cl,[bx] ;将cl与后面的字符的ASC码比较大小
ja x2 ;若前者大,则跳到x2
mov cl,[bx] ;若前者小,则重新赋值,然后程序顺序往下执行
x2: inc bx ;bx自增1,即移到字符串下一位
cmp bx,9 ;确保bx偏移量未超过字符串的长度
jb x1 ;重入循环,将当前最大值与下一个字符比较大小
code ends
end start
截图:
中间的执行步骤太多,故截图省略。
因为将字符串中ASCII码最大的字符存在寄存器CX的低位cl上,故可从CX寄存器存储的数据中得出字符串string中ASCII码最大的字符是6F,即字符’o’。由下图可知:
总结:
继续干巴爹!!!淦就完事儿,嘿嘿