• 汇编语言6


    div指令

    1.除数:有8位和16位两种,在一个寄存器或者内存中。

    2、被除数:默认放在AX或(DX和AX)中,如果除数为8位,被除数为16位,被除数默认在AX中存放,
    如果除数为16位,被除数为32位,被  除数则在(DX和AX)中存放,DX存放高16位,AX存放低16位。

    题目1

    assume cs:code, ds:data
    data segment
    db 'a'  ;8位
    dw 100  ;16位
    dd 100006  ;32位
    data ends


    code segment

    start:
    mov ax,data
    mov ds, ax

    mov ax,500
    mov bx,0
    div byte ptr[bx]    ; 500/97 =5...15, al保存商, ah保存余数

    ;mov ax,86A1h   ;设置被除数 100001 == 186A1h
    ;mov dx,1
    ;div word ptr[bx+1]  ;执行后 ax保存商, dx保存余数

    mov ax,word ptr[bx+3]  ;设置被除数
    mov dx,word ptr[bx+5]
    div word ptr[bx+1]  ;执行后 ax保存商, dx保存余数


    mov ax,4c00h
    int 21h
    code ends
    end start

    题目2
    1982年关于DEC公司的一条记录:
    公司名称:DEC
    总裁姓名:Ken Olsen
    排    名:137
    收    入:40
    著名产品:PDP

    1988年DEC公司的信息有了变化:
    1.Ken Olsen 在富翁榜上的排名已升至38位;
    2.DEC的收入增加了70亿美元;
    3.该公司的著名产品已变为VAX系列计算机。
    任务:编程修改内存中的过时数据。

    c语言代码

    struct company
    {
     char cn[30];
     char rn[30];
     int num;
     int sr;
     char cp[30];
    }
    struct company aa={"DEC", "Ken Olsen", 130, 40, "PDP"};
    void main()
    {
     aa.num = 38;
     aa.sr = 110;
     aa.cp[0] = 'V';
     aa.cp[1] = 'A';
     aa.cp[2] = 'X';
    }

    汇编代码
    assume cs:code, ds:data
    data segment
    db 'DEC','Ken Olsen'
    dw 130,40
    db 'PDP'
    data ends

    code segment
    start:
    mov ax,data
    mov ds,ax
    mov bx,12
    mov word ptr[bx], 38
    add word ptr[bx+2], 70
    mov byte ptr[bx+4], 'V'
    mov byte ptr[bx+5], 'A'
    mov byte ptr[bx+6], 'X'
    mov ax,4c00h
    int 21h
    code ends
    end start

  • 相关阅读:
    mysql按月获取一年内每个月的数据量
    Intellij IDEA的激活
    mysql随机更新时间
    获取mysql数据表中的列名
    maven PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path
    sublime相关设置
    行走在这个城市,无助的是怀念悲伤
    如何开软件公司
    MYSQL常用语句
    爱——无题
  • 原文地址:https://www.cnblogs.com/mayingkun/p/4539164.html
Copyright © 2020-2023  润新知