匯編學習-幾條簡單的匯編指令
阿新 • • 發佈:2018-07-15
使用 isp 4條 open alt %s str h+ Coding
檢測點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=_____?View Code‘‘‘ 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()
匯編學習-幾條簡單的匯編指令