汇编语言问题来到大师面前,汇编语言要求答案

发布于 科技 2024-02-20
14个回答
  1. 匿名用户2024-01-25

    1.如果数据段未结束,请添加 dseg ends2声明数据时,db后面应该有空格,你不是自由的。

    3.第十三次应该是测试,而不是文本

    更正如下:dseg 段

    strn db 'abcdefghijklmnopquvw','$'

    n db ?

    dseg ends

    cseg segment

    assume cs: cseg, ds: dsegstart: mov ax, dseg

    mov ds, ax

    lea si, strn

    mov dl,0

    again: mov al,[si]

    cmp al,'$'

    je done

    test al,0ffh

    jpe next

    or al,80h

    mov [si],al

    inc dl

    next: inc si

    jmp again

    done: mov n,dl

    mov ah,4ch

    int 21h

    cseg ends

    end start

  2. 匿名用户2024-01-24

    这有点不对劲。

    data segment

    da1 dw 1234h,5678h,3456h,0a53h ;开口数。

    count equ ($da1)/2

    pfg db count dup (0) ;保存平方根。

    data ends

    stack1 segment para stackdw 20h dup (0)

    stack1 ends

    code segment

    assume cs: code,ds:data,ss:stack1being: mov ax , data

    mov ds , ax

    mov cx , count

    lea si , da1

    lea di , pfg

    lop: mov ax , si] ;取要打开的方格数。

    push cx ;保存信息。

    call sqr_proc ;调用子例程。

    mov [di] ,cl ;保存平方根。

    pop cx ;恢复信息。

    add si , 2 ;修改指针。

    inc di

    loop lop

    mov ah , 4ch

    int 21h

    sqr_proc proc ;打开平方根子例程。

    xor cl ,cl

    mov dx ,1

    sqr: sub ax , dx

    jb exit

    inc cl

    add dx , 2

    jmp sqr

    exit: ret

    sqr_proc endp

    code ends

    end being

  3. 匿名用户2024-01-23

    操作步骤如下: <>

    经过测试,程序的功能可以满足问题的要求。

  4. 匿名用户2024-01-22

    20000h单元的内容为20 h,20006h单元的内容为33 h,SI的内容为000c h,MOV SI后,执行偏移B2。

    第三个空白应填写为 000c。

    关键是这句话:b1 db'3ac5$ 空'

    注意? 这里面有一个“空间”。

    楼上的两人都低估了“空间”。

  5. 匿名用户2024-01-21

    首先,标题本身有一点错误。

    B2 dB B1 错误,应更改为 B2 DW B1。

    由于 b1 用于数据定义的操作数,因此它表示其 16 位偏移地址,不能在 db 定义的 8 位变量中使用。

    分析数据段中的数据存储情况

    物理地址数据。

    20000h 20h ;W1 的第一个站点是 3220001h 20h

    20002h ffh ;W2地址,每个地址占两个字节20003h ffh

    20004h 41h

    20005h 00h

    20006h 33h ;B1,第一个是“3”

    20007h 41h ;这是“一个”

    20008h 43h ;这是“c”

    20009h 35h ;这是“5”

    2000ah 24h ;它是'$'

    2000bh 06h ;B2 的第一个地址存储在 B1 的偏移地址 0006h

    2000ch 00h

    存储数据后,很容易找到答案。

    1.20000h单位的内容是十进制数32,即20h2单元20006h的内容为33h

    3.偏移量 B2 是 B2 000BH 的偏移地址

  6. 匿名用户2024-01-20

    m1 db 32,20h

    m2 dw -1,41h

    b1 db '3ac5$'

    b2 db b1

    标签的实际含义是线段的偏移地址,其中m1=0000h,m2=0002h,b1=0006h,b2=000bh

    加载标签有两个常用值:MOV 命令模式需要偏移量来修改标签,而 LEA 命令模式不需要偏移量修改。

    数据段开头的地址是20000h,表示段偏移地址从0000h开始的单位,即M1处的单位内容为十进制数32,即十六进制表示为20h,20006h表示0006h,即B1处的单位内容, 这是 3 的 ASCII 代码,十六进制是 33h

    mov si,offset b2 相当于 lea si,b2; si=b2=000bh

    这是一个基本问题。

  7. 匿名用户2024-01-19

    不保证是对的。

    3 ax bx cx dx

    4 4200h

    5 订单。 结构 分支结构 环状结构。

    7 d8 a

    9 c10 d

    11 a12 b

    13 将汇编语言源程序翻译成目标程序。

    14 即时寻址 寄存器寻址 直接寻址寄存器 间接寻址寄存器 相对寻址 基址加变量寻址 相对基址加变量寻址。

    15 数据传输 算术运算 逻辑运算 串行运算 程序控制 处理器控制 16 用于告诉汇编者如何组装的指令。

    17 1.分析问题并抽象出描述问题的数据模型 2.确定问题的算法思路 3.绘制流程图或结构图 4.分配内存和工作单元(寄存器) 5.逐个编写程序 6.在计算机上进行静态检查和调试。

    18 初始化部分 环体部分 调整部分 控制部分 19 in al, 21h

    mov dx,1200h

    out dx,al

    20 mov ax,12h

    mov bx,34h

    mov cl,8

    shl ax,cl

    or ax,bx

    21 codes segment

    assume cs:codes

    start:

    mov bx,1010101010101010bmov cx,4

    s1:mov bp,4

    xchg cx,bp

    rol bx,cl

    xchg cx,bp

    mov ax,bx

    and ax,0fh

    cmp ax,10

    jb s2add ax,7

    s2:add ax,30h

    mov dx,ax

    mov ah,2

    int 21h

    loop s1

    mov ah,4ch

    int 21h

    codes ends

    end start

  8. 匿名用户2024-01-18

    if (interrupt enable) - 位 9,中断权限标志。 控制处理器对可屏蔽硬件中断请求的响应。 设置 1 可启用可屏蔽硬件中断响应,设置 0 可关闭可屏蔽硬件中断响应。

    执行 int8 后,if 标志从“允许中断 (EI)”更改为“禁止中断”(DI),即从“1”变为“0”。 因此,x2xx 变为 x0xx。

    CPL、IOPL 和控制寄存器 CR4 中的 VME 标志确定 CLI、STI、POPF、POPFD 和 IRET 指令是否可以修改 IF 标志。

    希望它有所帮助。

  9. 匿名用户2024-01-17

    标志的 0200h 位 IF 是中断允许标志,0 表示禁止响应硬件中断,1 表示允许硬件中断。

    执行CLI命令后,if=0; 执行 STI 后,if=1

    当中断器结束时,它包含 popf 并恢复之前的标志

  10. 匿名用户2024-01-16

    在 16 位汇编语言中,物理地址 = 段地址 * 16(即十六进制为 10h,即二进制中左移 4 位,或卦中左移 1 位)+ 偏移地址,构成一个 20 位地址(因为 8086CPU 有一条 20 位地址线)。 所以这个问题的PA=DS*16+1352H=10000+1352=11352H(通常表示为1000:1352)。

    指令 mov ax [1352h] 是将存储在地址 1000:1352h(默认段地址为 DS)的数据发送到寄存器 ax(未计算,此处地址为 1000; 1352h 处的值应为 26ffh),其中 AH 为 8 位高,Al 为 8 位低。

    希望它有所帮助。

  11. 匿名用户2024-01-15

    ob4h对应的二进制为10110100,第一位为符号位,即1。

    如果是无符号的,则为10110100,如果转换为十进制,则为180,如果有符号,则为-0110100,如果转换为十进制,则为-76。

    11h对应的二进制是10001,完成8位是00010001,第一个数字是符号位,是0。

    如果认为是无符号的,则为00010001,如果转换为十进制,则为17,如果视为有符号,则为+0010001,转换为十进制的17。

    可以看出,由于第一个位置是0,所以不管是有符号还是无符号都是一样的。

    如果第一个数字是1,则有符号时为负数,无符号时为整数,结果不同。

  12. 匿名用户2024-01-14

    有符号数字,由补语表示。

    房东去看了补品的相关知识,没有这样的问题。 参考。

  13. 匿名用户2024-01-13

    0b4h=1|011,0100b

    011h=0|001,0001b

    注意:“|“Before is the sign bit”是一个四位分隔符。

    我看不懂了,辅导源码,补码的知识。

  14. 匿名用户2024-01-12

    mov si,0024h ;si=24h

    mov bx, si ;bx=24h

    mov si,[si] ;si=6f72h

    or si,0ffh ;si=6fffh

    and si,[bx] ;si=6f72h

    执行上述程序片段后,(si)=6f72h,(cf)=0,of=0;

相关回答
18个回答2024-02-20

我也有 0 个基本编程。

从王爽老师的《汇编语言》一书开始,通俗易懂,如果不是这本书,也许我早就放弃学习编程了,学完这个看了谭浩强的《C语言编程》,只看前几章,以win32汇编为基础,Windows下的汇编和C很像, 再学习罗云斌的《Windows环境下的32位汇编语言编程》,学完这本书就上手了。 >>>More

6个回答2024-02-20

查看 IBM PC Assembly Language Programming(第 5 版)。

9个回答2024-02-20

mov dx,3 是初始化 dx,注意 dx 中的二进制是 0000 0000 0000 0011,稍后会用到。 >>>More

6个回答2024-02-20

选择 D。 注意优先级较低,AND的优先级高于OR和XOR的优先级00000110(6)。 >>>More

5个回答2024-02-20

它是根据数字电路中的逻辑运算计算得出的。