• 8086汇编-26[BX]和Loop指令04


    #pragma once
    /*    26-[BX]和Loop指令04

      温故而知新
        【bx】的作用:作为偏移地址与DS配合

         loop和cx合作

         debug的-g 偏移地址 命令 和 -p命令


      Debug和汇编编译器Masm对指令的不同处理
        本节只试点为下面刻成的顺利进行提供一点预备知识。

        我们在Debug中写过类似的指令:
                    mov ax,[0] 

            表示将ds:0处的数据送入al中。

        但是在汇编源程序中,指令“mov ax,[0]”被编译器当作指令“mov ax,0”处理。
        示例
            示例任务:将内存2000:0、2000:1 、2000:2、2000:3单元中的数据送入al,bl,cl,dl中。
            (1)在Debug中编程实现
            (2)汇编程序实现

                在Debug中编程实现
                两种实现的实际实施情况
                        mov ax,2000h
                        mov ds,ax
                        mov al,[0]
                        mov bl,[1]
                        mov cl,[2]
                        mov dl,[3]


                对比汇编程序实现
                        assume cs:code 
                        code segment
                            mov ax,2000h
                            mov ds,ax
                            mov al,[0]
                            mov bl,[1]
                            mov cl,[2]
                            mov dl,[3]
        
                            mov ax,4c00h
                            int 21h
                        code ends
                        end

        如果一定要像DEBUG那样
            在MASM中mov ax, [2]是解释为mov ax,2的。一般我们是通过BX来代替,像这道题我们先mov bx, 2 再通过mov ax, [bx]来实现。

            但是我们要像DEBUG一样直接用[2]可以吗?答案是……

            可以的,不过要加上段地址!!试试!

        对比以下指令分辨:
            mov al, [0]
            mov al, ds:[0]
            mov al, [bx]
            mov al, ds:[bx]
            该形式就是我们在OD 中看到的!我们以后在编译器中也应该如此进行编译!!!!

            另外Debug 中 P不但可以结束 程序,也可以结束循环

        在masn 编译器中 下面的汇编指令 其真正会被编译成?其真正的意思是?
            mov al, [0]                mov al,0                al = 0
            mov al, ds:[0]            mov al,ds:[0]            al = (ds:[0])    
            mov al, [bx]            mov al, [bx]            al = (ds:[bx])
            mov al, ds:[bx]         mov al, ds:[bx]            al = (ds:[bx])        
    */

  • 相关阅读:
    C++ 位拷贝
    C/C++数据结构课程设计安排
    linux系统部署微服务项目
    【黄啊码】PHP如何防止重复提交
    java字符串压缩和字符串解压
    01 Spring 介绍
    杭电oj 2039 三角形 C语言
    同城预约上门服务APP小程序开发 打造快捷便利生活
    灌水时间:树莓派4+Lakka做怀旧游戏机
    C++解析3d模型文件jt
  • 原文地址:https://blog.csdn.net/CSDN_DaShuiNiu/article/details/127770484