检测点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()