汇编语言十一

Posted kksjs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言十一相关的知识,希望对你有一定的参考价值。

assume cs:code

data segment
    db "Beginner‘s All-purpose Symblic Instruction Code.",0
data ends

code segment
  start:                            
    mov ax,data                        
    mov ds,ax                        ;ds 段寄存器中存放要操作的源数据的段地址
    mov si,0                         ;初始偏移地址为 0
    call letterc                     ;调用子程序
    mov ah,4ch
    int 21h


letterc:                             ;子程序开始执行前 ds:si 指向字符串的入口地址
    push cx
    push si                          ;子程序执行前照常进行寄存器的保护工作

  lnext:
    sub ch,ch                        ;ch 寄存器置零, 以备 loop 指令使用
    mov cl,[si]                      ;将字符串第一个字符放进 cl 寄存器, 8bit
    jcxz lret                        ;如果还没到最后一个 0 的话, 则继续执行下一个指令, 一旦将字符串的最后一个 0 移入 cl 后, cx 寄存器为零, 程序跳转到 lret 标号处执行
    cmp cl,a                       ;比较指令
    jb  plusi                        
    cmp cl,z
    ja  plusi
    and byte ptr [si],11011111b      ;前面执行了两次 cmp 指令, 只有当ds:si指向的字符为小写字母时, 才将其转变为大写字母
 plusi:
    inc si
    jmp short lnext 
 lret:  
    pop si
    pop cx         
ret    
code ends
end start

 

以上是关于汇编语言十一的主要内容,如果未能解决你的问题,请参考以下文章

JVM进阶之路十二:字节码指令

凭什么说这门编程语言是下一代 Java?

iPhone一代十年后再开箱:比X爽多了

JVM进阶之路十二:字节码指令

JVM进阶之路十二:字节码指令

第十一代雅阁的雏形?本田发布可实现自动驾驶的下一代雅阁原型车!