1. 程式人生 > >匯編學習-幾條簡單的匯編指令

匯編學習-幾條簡單的匯編指令

使用 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=_____?
‘‘‘ 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

匯編學習-幾條簡單的匯編指令