zoukankan      html  css  js  c++  java
  • 汇编学习-几条简单的汇编指令

    检测点2.1

    (1) 写出每条汇编指令执行后相关寄存器中的值
    mov ax,62627       AX=_____?
    mov ah,31H          AX=_____?
    mov al,23H           AX=_____?
    add ax,ax             AX=_____?
    mov bx,826cH     BX=_____?
    mov cx,ax            CX=_____?
    mov ax,bx            AX=_____?
    add ax,bx             AX=_____?
    mov al,bh             AX=_____?
    mov ah,bl             AX=_____?
    add ah,ah            AX=_____?
    add al,6               AX=_____?
    add al,al              AX=_____?
    mov ax,cx            AX=_____?

    (2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。

    由于python可以省去很多时间,我使用的python进行的计算,如下图:

    代码内容如下:

    #!/usr/bin/python3
    
    # -*- coding: utf-8 -*-
    
    __author__='sonwnja'
    
    exam_1='''
    (1) 写出每条汇编指令执行后相关寄存器中的值
    mov ax,62627    AX=_____?
    mov ah,31H      AX=_____?
    mov al,23H      AX=_____?
    add ax,ax       AX=_____?
    mov bx,826cH    BX=_____?
    mov cx,ax       CX=_____?
    mov ax,bx       AX=_____?
    add ax,bx       AX=_____?
    mov al,bh       AX=_____?
    mov ah,bl       AX=_____?
    add ah,ah       AX=_____?
    add al,6        AX=_____?
    add al,al       AX=_____?
    mov ax,cx       AX=_____?
    '''
    exam_2='''
    (2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
    '''
    def exam1():
        print(exam_1)
        print("答案:")
        print('mov ax,62627    AX=%x' % 62627)
        
        ax='%x' % 62627
        ah=ax[-4:-2]
        al=ax[-2:]
        ah=0x31
        ah='%x' % ah
        ax=str(ah)+str(al)
        print('mov ah,31H      AX=%x' % int(int(ax,16)))
        
        al=0x23
        al='%x' % al
        ax=str(ah)+str(al)
        print('mov al,23H      AX=%x' % int(int(ax,16)) )
        
        ax=int(ax,16)+int(ax,16)
        print('add ax,ax       AX=%x' % ax)
        
        bx=0x826c
        print('mov bx,826cH    BX=%x' % bx)
        
        cx=ax
        print('mov cx,ax       CX=%x' % cx)
        
        ax=bx
        print('mov ax,bx       AX=%x' % ax)
        
        ax+=ax
        ax='%x' % ax
        ax=str(ax)[-4:]
        print('add ax,bx       AX=%s' % ax)
        
        ah=ax[-4:-2]
        al=ax[-2:]
        bx='%x' % bx
        bh=bx[-4:-2]
        al=bh
        ax=ah + str(al)
        print('mov al,bh       AX=%s' % ax)
        
        al=ax[-2:]
        bl=bx[-2:]
        ah=bl
        ax=ah + al
        print('mov ah,bl       AX=%s' % ax)
        
        
        ah=ax[-4:-2]
        al=ax[-2:]
        ah=int(ah,16)+int(ah,16)
        ax=('%x' % ah) + al
        print('add ah,ah       AX=%s' % ax)
        
        
        ah=ax[-4:-2]
        al=ax[-2:]
        al=int(al,16)+6
        al='%x' % al
        ax=ah + al
        print('add al,6        AX=%s' % ax)
        
        ah=ax[-4:-2]
        al=ax[-2:]
        al=int(al,16) + int(al,16)
        al='%x' % al
        al=al[-2:]
        ax=ah + al
        print('add al,al       AX=%s' % ax)
        
        ax=cx
        print('mov ax,cx       AX=%x' % ax)
    
    
    def exam2():
        print(exam_2) 
        print("答案:")
        print('mov ax,2H')
        print('add al,al')
        print('add al,al')
        print('add al,al')
        ax=0x0002
        ax='%x' % ax
        print('AX=%s 十进制初始值是: %d' % (ax,int(ax,16)))
        print('经过这4条指令运算后')
        ah='00'
        al=ax[-2:]
        al=int(al,16)+int(al,16) 
        al=al+al 
        al=al+al 
        ax=ah+('%x' % al)
        print('AX=%s 换成十进制后的结果: %d' % (ax,int(ax,16)))
    
    exam1()
    exam2()
    View Code
  • 相关阅读:
    Easy Install详细参数
    linux.backspace乱码(转)
    RemoteFX
    netsh
    sc.exe
    WinRM和WinRS
    安全配置向导
    使用 Sconfig.cmd 配置服务器核心服务器
    FSMO
    Windows Server 2012之活动目录域服务的卸载
  • 原文地址:https://www.cnblogs.com/sonwnja/p/9314369.html
Copyright © 2011-2022 走看看