爱问知识人 爱问共享资料 医院库

5道选择,有答案,问下为什么这样选

首页

5道选择,有答案,问下为什么这样选

1.下列描述正确的是( B   )

A.汇编语言仅由指令性语句构成
B.汇编语言包括指令性语句和伪指令语句
C.指令性语句和伪指令性语句的格式是均匀全相同的
D.指令性语句和伪指令性语句需经汇编程序翻译成机器代码后才能执行
2.假定(AL)=85H,(CH)=29H,
展开

提交回答
好评回答
  • 2019-04-02 15:43:40
      1、伪指令是不编译成机器语言的,它只是提示编译器怎样编译
    2、就是十进制85-29。因为DAS就是将16进制减法调整成BCD码减法。
    3、这个就是这样的。先设定CX(计数器),然后不断减1,直到为0退出。
    比如,有100字节的数据从[SI]传到[DI],就先将CX设为100
    4、这个题比较变态,我也被迷惑了。
      答案是对的。 你记得如果是DB的话,那么定义的是字节,对于字符串'123'来说,在内存中保存的是他的ACSII码49,50,51,十六进制:31,32,33 但是对于DW,它应该2个字节,所以为了确保将来MOV AX,DAT后AX=3132H,根据Little-Endian规则,在内存中是32,31。
      当然你还要对齐到双字节,所以'123'在内存中是32,31,33,00 那么对于DD,应该对齐到4字节。比如'123','45'内存中是:33,32,31,00,35,34,00,00 这题太BT,不会就算了。 5、OFFSET VAR是伪指令,表示VAR相对于DS的相对位置,是一个数!假设他是0,那么指令就相当于MOV BX,0,所以是立即数寻址。
       指令集的问题,我有Intel的x86指令集说明,txt文本,是以前网上弄来的。需要搞开发的话留个邮箱发给你。 不搞开发的话就不要看了。你说的那些指令太基本,自己总结一下,配合英文理解即可。比如ADD,当然就是相加咯。

    在***

    2019-04-02 15:43:40

其他答案

    2019-04-02 15:42:47
  •   一、数据传输指令
    ───────────────────────────────────────
    它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。
    1。 通用数据传送指令。
    MOV 传送字或字节。
    MOVSX 先符号扩展,再传送。
       MOVZX 先零扩展,再传送。 PUSH 把字压入堆栈。 POP 把字弹出堆栈。 PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈。 POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈。
       PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈。 POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈。 BSWAP 交换32位寄存器里字节的顺序 XCHG 交换字或字节。
      ( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数。( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加。( 结果在第一个操作数里 ) XLAT 字节查表转换。 ── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即 0-FFH); 返回 AL 为查表结果。
       ( [BX+AL]->AL ) 2。 输入输出端口传送指令。 IN I/O端口输入。 ( 语法: IN 累加器, {端口号│DX} ) OUT I/O端口输出。 ( 语法: OUT {端口号│DX},累加器 ) 输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时, 其范围是 0-65535。
       3。 目的地址传送指令。 LEA 装入有效地址。 例: LEA DX,string ;把偏移地址存到DX。 LDS 传送目标指针,把指针内容装入DS。 例: LDS SI,string ;把段地址:偏移地址存到DS:SI。 LES 传送目标指针,把指针内容装入ES。
       例: LES DI,string ;把段地址:偏移地址存到ES:DI。 LFS 传送目标指针,把指针内容装入FS。 例: LFS DI,string ;把段地址:偏移地址存到FS:DI。 LGS 传送目标指针,把指针内容装入GS。 例: LGS DI,string ;把段地址:偏移地址存到GS:DI。
       LSS 传送目标指针,把指针内容装入SS。 例: LSS DI,string ;把段地址:偏移地址存到SS:DI。 4。 标志传送指令。 LAHF 标志寄存器传送,把标志装入AH。 SAHF 标志寄存器传送,把AH内容装入标志寄存器。
       PUSHF 标志入栈。 POPF 标志出栈。 PUSHD 32位标志入栈。 POPD 32位标志出栈。 二、算术运算指令 ───────────────────────────────────────   ADD 加法。 ADC 带进位加法。
       INC 加 1。 AAA 加法的ASCII码调整。 DAA 加法的十进制调整。 SUB 减法。 SBB 带借位减法。 DEC 减 1。 NEC 求反(以 0 减之)。 CMP 比较。(两操作数作减法,仅修改标志位,不回送结果)。
       AAS 减法的ASCII码调整。 DAS 减法的十进制调整。 MUL 无符号乘法。 IMUL 整数乘法。 以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM 乘法的ASCII码调整。 DIV 无符号除法。
       IDIV 整数除法。 以上两条,结果回送: 商回送AL,余数回送AH, (字节运算); 或 商回送AX,余数回送DX, (字运算)。 AAD 除法的ASCII码调整。 CBW 字节转换为字。 (把AL中字节的符号扩展到AH中去) CWD 字转换为双字。
       (把AX中的字的符号扩展到DX中去) CWDE 字转换为双字。 (把AX中的字符号扩展到EAX中去) CDQ 双字扩展。 (把EAX中的字的符号扩展到EDX中去) 三、逻辑运算指令 ───────────────────────────────────────   AND 与运算。
       or 或运算。 XOR 异或运算。 NOT 取反。 TEST 测试。(两操作数作与运算,仅修改标志位,不回送结果)。 SHL 逻辑左移。 SAL 算术左移。(=SHL) SHR 逻辑右移。 SAR 算术右移。(=SHR) ROL 循环左移。
       ROR 循环右移。 RCL 通过进位的循环左移。 RCR 通过进位的循环右移。 以上八种移位指令,其移位次数可达255次。 移位一次时, 可直接用操作码。 如 SHL AX,1。 移位>1次时, 则由寄存器CL给出移位次数。 如 MOV CL,04 SHL AX,CL 四、串指令 ───────────────────────────────────────  DS:SI 源串段寄存器 :源串变址。
       ES:DI 目标串段寄存器:目标串变址。 CX 重复次数计数器。 AL/AX 扫描值。 D标志 0表示重复操作中SI和DI应自动增量; 1表示应自动减量。 Z标志 用来控制扫描或比较操作的结束。 MOVS 串传送。 ( MOVSB 传送字符。
       MOVSW 传送字。 MOVSD 传送双字。 ) CMPS 串比较。 ( CMPSB 比较字符。 CMPSW 比较字。 ) SCAS 串扫描。 把AL或AX的内容与目标串作比较,比较结果反映在标志位。 LODS 装入串。 把源串中的元素(字或字节)逐一装入AL或AX中。
       ( LODSB 传送字符。 LODSW 传送字。 LODSD 传送双字。 ) STOS 保存串。 是LODS的逆过程。 REP 当CX/ECX<>0时重复。 REPE/REPZ 当ZF=1或比较结果相等,且CX/ECX<>0时重复。
       REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0时重复。 REPC 当CF=1且CX/ECX<>0时重复。 REPNC 当CF=0且CX/ECX<>0时重复。 五、程序转移指令 ───────────────────────────────────────  1>无条件转移指令 (长转移) JMP 无条件转移指令 CALL 过程调用 RET/RETF过程返回。
       2>条件转移指令 (短转移,-128到+127的距离内) ( 当且仅当(SF XOR OF)=1时,OP1循环控制指令(短转移) LOOP CX不为零时循环。 LOOPE/LOOPZ CX不为零且标志Z=1时循环。 LOOPNE/LOOPNZ CX不为零且标志Z=0时循环。
       JCXZ CX为零时转移。 JECXZ ECX为零时转移。 4>中断指令 INT 中断指令 INTO 溢出中断 IRET 中断返回 5>处理器控制指令 HLT 处理器暂停, 直到出现中断或复位信号才继续。 WAIT 当芯片引线TEST为高电平时使CPU进入等待状态。
       ESC 转换到外处理器。 LOCK 封锁总线。 NOP 空操作。 STC 置进位标志位。 CLC 清进位标志位。 CMC 进位标志取反。 STD 置方向标志位。 CLD 清方向标志位。 STI 置中断允许位。 CLI 清中断允许位。
       六、伪指令 ─────────────────────────────────────── DW 定义字(2字节)。 PROC 定义过程。 ENDP 过程结束。 SEGMENT 定义段。 ASSUME 建立段寄存器寻址。 ENDS 段结束。
       END 程序结束。
       七、处理机控制指令: 标志处理指令 CLC(进位位置0指令) CMC(进位位求反指令) STC(进位位置为1指令) CLD(方向标志置1指令) STD(方向标志位置1指令) CLI(中断标志置0指令) STI(中断标志置1指令) NOP(无操作) HLT(停机) WAIT(等待) ESC(换码) LOCK(封锁) 。

    烟***

    2019-04-02 15:42:47

  • 2019-04-02 14:59:31
  • 因为着答案是对的所以这么回答 

    不***

    2019-04-02 14:59:31

类似问题

换一换

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈
关注
爱问

关注爱问微信公众号,开启知识之旅,随时随地了解最新资讯。

确定举报此问题

举报原因(必选):