實驗三 算術運算與代碼轉換程序設計 一、實驗目的
1)掌握算術運算程序的設計方法。
2)掌握代碼轉換程序的設計方法。
3)進一步掌握各種程序結構。
4)熟練掌握和使用用 DEBUG 調試程序。
二、實驗內容
1 1 )編制兩個多字節整數加法和減法程序,并將結果按十六進制形式顯示在屏幕上。
2)編制程序實現二進制定點數與十進制數的 ASCII 碼串之間轉換,并將結果顯示在屏幕上。
3)編寫程序計算從鍵盤輸入兩個不超過四位的十進制數的和、差、積、商,并以十進制形式輸出。
4)寫程序把從鍵盤輸入的四位十六進制數轉換為壓縮的 BCD 碼,并顯示輸出。
5)編寫一通用過程用來將十進制數(從鍵盤輸入)轉換為 P(從鍵盤輸入)進制數。
三、實驗設備
PC 機一臺 四、實驗步驟
1) 按程序流程圖編制實驗程序。
2) 輸入源程序。
3) 匯編、連接程序,執行程序,檢查結果。
4) 程序的執行可用 DEBUG 的 G 命令,也可用 T 命令單步跟蹤執行。
5) 用 D 命令檢查執行結果。
六、源程序 實驗一 DATA SEGMENT
NUM1 DB 22H,33H,44H,55H,66H,77H
NUM1L DB 6H
NUM2 DB 22H,22H,22H,22H
NUM2L DB 4H
OUTCOME1 DB 10H DUP(0)
OUTCOME2 DB 10H DUP(0)
N DB 0H
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START:MOV AX,DATA
MOV DS,AX
MOV CH,0
MOV SI,OFFSET NUM1
MOV DI,OFFSET NUM2
MOV AH,NUM1L
MOV AL,NUM2L
CMP AH,AL
JAE CHA
XCHG SI,DI
XCHG AH,AL
CHA:SUB AH,AL
MOV CL,AL
CLC
MOV BX,OFFSET OUTCOME1 LOP1:MOV AL,[DI]
PUSH CX
MOV CL,[SI]
ADC CL,AL
MOV [BX],CL
INC BX
INC SI
INC DI
POP CX
LOOP LOP1
MOV CL,AH
JCXZ LOP3
LOP2:PUSH CX
MOV CL, BYTE PTR [SI]
ADC CL,0
MOV [BX],CL
POP CX
INC BX
INC SI
LOOP LOP2
LOP3:MOV CH,0
MOV SI,OFFSET NUM1
MOV DI,OFFSET NUM2
MOV AH,NUM1L
MOV AL,NUM2L
CMP AH,AL
JAE CHA1
XCHG SI,DI
XCHG AH,AL
CHA1:SUB AH,AL
MOV CL,AL
CLC
MOV BX,OFFSET OUTCOME2
LOP11:MOV AL,[DI]
PUSH CX
MOV CL,[SI]
SBB CL,AL
MOV [BX],CL
INC BX
INC SI
INC DI
POP CX
LOOP LOP11
MOV CL,AH JCXZ LOP7
LOP21:PUSH CX
MOV CL, BYTE PTR [SI]
SBB CL,0
MOV [BX],CL
POP CX
INC BX
INC SI
LOOP LOP21
LOP7:MOV DI,OFFSET OUTCOME1
ADD DI,10H
MOV CX,11H
LOP4: MOV DL,[DI]
DEC DI
CMP N,0H
JNE LOP5
CMP DL,0H
JE LOP9
LOP5:PUSH DX
PUSH CX
MOV CL,4H
SHR DL,CL
POP CX
CMP DL,9H
JBE LOP6
ADD DL,7H
LOP6:ADD DL,30H
MOV AH,2
INT 21H
MOV N,1H
POP DX
AND DX,0FH
CMP DL,9H
JBE LOP8
ADD DL,7H
LOP8:ADD DL,30H
MOV AH,2
INT 21H
MOV DL,"H"
MOV AH,2
INT 21H
LOP9:LOOP LOP4
MOV N,0
MOV DI,OFFSET OUTCOME2 ADD DI,10H
MOV CX,11H
LOP14: MOV DL,[DI]
DEC DI
CMP N,0H
JNE LOP15
CMP DL,0H
JE LOP19
LOP15:PUSH DX
PUSH CX
MOV CL,4H
SHR DL,CL
POP CX
CMP DL,9H
JBE LOP16
ADD DL,7H
LOP16:ADD DL,30H
MOV AH,2
INT 21H
MOV N,1H
POP DX
AND DX,0FH
CMP DL,9H
JBE LOP18
ADD DL,7H
LOP18:ADD DL,30H
MOV AH,2
INT 21H
MOV DL,"H"
MOV AH,2
INT 21H
LOP19:LOOP LOP14
MOV AH,4CH
INT 21H
CODE ENDS
END START
驗 實驗 2
DATA SEGMENT
TISHI1 DB "Please enter the first number:","$"
TISHI2 DB "Please enter the second number:","$"
JIA DB "+","$"
JIAN DB "-","$"
CHENG DB "*","$" CHU DB "/","$"
DENG DB "=","$"
YU DB "......","$"
A DB 10
B DW 10
C DW 10000
F DW 0H
NUM1 DW 0H
NUM2 DW 0H
N DB 0H
N1 DB 4H
DATA ENDS
STACK1 SEGMENT STACK
DW 30H DUP(0)
STACK1 ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET TISHI1
MOV AH,09H
INT 21H
LOOP2:MOV AX,NUM1
MUL B
MOV BX,AX
MOV AH,1
INT 21H
CMP AL,0DH
JE LOP1
MOV NUM1,BX
MOV AH,0
SUB AL,30H
ADD NUM1,AX
JMP LOOP2
LOP1:MOV DL,0AH
輸出換行和回車
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H MOV DX,OFFSET TISHI2
MOV AH,09H
INT 21H
LOOP1:MOV AX,NUM2 MUL B
MOV BX,AX
MOV AH,1
INT 21H
CMP AL,0DH
JE LOP3
MOV NUM2,BX
MOV AH,0
SUB AL,30H
ADD NUM2,AX
JMP LOOP1
LOP3:MOV DL,0AH
輸出換行和回車
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV N,0
MOV DX,NUM1
MOV F,DX
LOP6:MOV DX,0H
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOP7
MOV F,AX
JMP LOP6
LOP7:MOV CL,N
MOV CH,0
LOP16:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOP16
MOV DX,NUM2
MOV F,DX
MOV N,0
MOV DX,OFFSET JIA
MOV AH,09H
INT 21H
LOOOP6:MOV DX,0H
MOV AX,F DIV B
PUSH DX
INC N
CMP AX,0H
JE LOOOP7
MOV F,AX
JMP LOOOP6
LOOOP7:MOV CL,N
MOV CH,0
LOOOP16:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOOOP16
MOV DX,OFFSET DENG
MOV AH,09H
INT 21H
MOV N,0
LOOP3:MOV AX,NUM1
ADD AX,NUM2
MOV F,AX
LOOP4:MOV DX,0H
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOOP5
MOV F,AX
JMP LOOP4
LOOP5:MOV CL,N
MOV CH,0
LOOP0:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOOP0
MOV DL,0AH
輸出換行和回車
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV N,0 MOV DX,NUM1
MOV F,DX
LOP61:MOV DX,0H
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOP71
MOV F,AX
JMP LOP61
LOP71:MOV CL,N
MOV CH,0
LOP161:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOP161
MOV DX,NUM2
MOV F,DX
MOV N,0
MOV DX,OFFSET JIAN
MOV AH,09H
INT 21H
LOOOP61:MOV DX,0H
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOOOP71
MOV F,AX
JMP LOOOP61
LOOOP71:MOV CL,N
MOV CH,0
LOOOP161:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOOOP161
MOV DX,OFFSET DENG
MOV AH,09H
INT 21H
MOV N,0 MOV N,0
MOV AX,NUM1
SUB AX,NUM2
MOV F,AX
AND AX,10000000B
CMP AX,10000000B
JNE LOOP6
NEG F
LOOP6:MOV DX,0
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOOP7
MOV F,AX
JMP LOOP6
LOOP7:MOV CL,N
MOV CH,0
LOOP16:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOOP16
MOV DL,0AH
輸出換行和回車
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV N,0
MOV DX,NUM1
MOV F,DX
LOP62:MOV DX,0H
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOP72
MOV F,AX
JMP LOP62
LOP72:MOV CL,N
MOV CH,0 LOP162:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOP162
MOV DX,NUM2
MOV F,DX
MOV N,0
MOV DX,OFFSET CHENG
MOV AH,09H
INT 21H
LOOOP62:MOV DX,0H
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOOOP72
MOV F,AX
JMP LOOOP62
LOOOP72:MOV CL,N
MOV CH,0
LOOOP162:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOOOP162
MOV DX,OFFSET DENG
MOV AH,09H
INT 21H
MOV N,0
MOV AX,NUM1
MUL NUM2
DIV C
PUSH DX
MOV F,AX
MOV N,0
LOOP8:MOV DX,0
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOOP9
MOV F,AX
JMP LOOP8
LOOP9:MOV CL,N
MOV CH,0
LOOP17:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOOP17
MOV N,0
POP F
LOOP10:MOV DX,0H
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOOP11
MOV F,AX
JMP LOOP10
LOOP11:MOV AL,N
CMP AL,4H
JE LOOP20
MOV AL,4H
SUB AL,N
MOV CL,AL
MOV CH,0
LOOP19:MOV DX,"0"
MOV AH,2
INT 21H
LOOP LOOP19
LOOP20:MOV CL,N
MOV CH,0
LOOP18:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOOP18
MOV DL,0AH
輸出換行和回車
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H MOV N,0
MOV DX,NUM1
MOV F,DX
LOP64:MOV DX,0H
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOP74
MOV F,AX
JMP LOP64
LOP74:MOV CL,N
MOV CH,0
LOP164:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOP164
MOV DX,NUM2
MOV F,DX
MOV N,0
MOV DX,OFFSET chu
MOV AH,09H
INT 21H
LOOOP64:MOV DX,0H
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOOOP74
MOV F,AX
JMP LOOOP64
LOOOP74:MOV CL,N
MOV CH,0
LOOOP164:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOOOP164
MOV DX,OFFSET DENG
MOV AH,09H
INT 21H
MOV N,0 MOV AX,NUM1
MOV DX,0
DIV NUM2
PUSH DX
MOV F,AX
MOV N,0
LOOP15:MOV DX,0
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOOP12
MOV F,AX
JMP LOOP15
LOOP12:MOV CL,N
MOV CH,0
LOOP21:POP DX
ADD DX,30H
MOV AH,2
INT 21H
LOOP LOOP21
MOV DX,OFFSET YU
MOV AH,09H
INT 21H
POP F
MOV N,0
LOOP13:MOV DX,0
MOV AX,F
DIV B
PUSH DX
INC N
CMP AX,0H
JE LOOP14
MOV F,AX
JMP LOOP13
LOOP14:MOV CL,N
MOV CH,0H
LOOP22:POP DX
ADD DX,30H MOV AH,2
INT 21H
LOOP LOOP22
MOV AH,4CH
INT 21H
CODES ENDS
END START
實驗五 輸入輸出程序設計
一、實驗目的
1) 掌握輸入輸出程序的編寫方法。
2) 熟悉系統功能調用的方法。
3) 熟悉動畫程序的編寫方法。
二、實驗內容
1)在 CRT 上每隔一秒連續顯示字符 0-9。
編程提示
為了使輸出的字符之間有空格,在每一個循環中輸出一個 0-9 的字符和一個空格。為了輸出 0-9,置寄存器 BL 初值為 0,每循環一次使其增量。為了保證輸出是十進制,增量后用DAA調整指令。由于輸出為一位十進制數,用AND
0FH指令屏蔽高 4 位。
2)用系統功能調用將‘HELLO’由鍵盤輸入,再從屏幕輸出‘***HELLO***’。
3)編制在屏幕上畫線的子程序,調用該子程序畫一矩形。
4)編制字母下落一行的子程序,調用該子程序使字母從屏幕頂部下落到底部。
5)創建一磁盤文件,保存從鍵盤輸入的字符串。
6)編寫程序用設置系統時間,首先從鍵盤以十進制數形式輸入時間,然后修改系統時間,并重新以十進制形式顯示時間。
7)編寫程序將屏幕分割成格狀,每一格涂上不同顏色,格數從鍵盤輸入。
8)編寫程序在屏幕上顯示菜單,輸入相應菜單的序號后,選種該菜單項。
三、實驗設備
PC 機一臺
四、實驗步驟
1) 按程序流程圖編制實驗程序。
2) 輸入源程序。
3) 匯編、連接程序,執行程序,檢查結果。
4) 程序的執行可用 DEBUG 的 G 命令,也可用 T 命令單步跟蹤執行。
五、 源程序 實驗五
EXAM5-1
STACK
SEGMENT
STACK
DB
1024
DUP(0)
STACK
ENDS CODE
SEGMENT
ASSUME
CS:CODE,SS:STACK START:
MOV
BL,
0
LP:
MOV
DL,
20H
MOV
AH,
2
INT
21H
MOV
AL,
BL
ADD
AL,
0
DAA
AND
AL,
0FH
MOV
BL,
AL
PUSH
BX
OR
AL,
30H
MOV
DL,
AL
MOV
AH,
2
INT
21H
MOV
BX,
3E8H
LP2:
MOV
CX,
176H
;延時 1ms
LP1:
PUSHF
POPF
LOOP
LP1
DEC
BX
JNZ
LP2
POP
BX
INC
BL
JMP
LP CODE
ENDS
END
START 執行程序 EXAM5-1·EXE,屏幕上依次循環顯示一個數字一個空格:
0
1
2
3
4
5
6
7
8
9
……
實驗五
EXAM5-2
STACK
SEGMENT
STACK
DB
1024
DUP(0)
STACK
ENDS DATA
SEGMENT BUFF
DB
6,7
DUP(?),‘$’ DATA
ENDS INPUT
MACRO
BUFE
MOV
DX,
OFFSET
BUFE
MOV
AH,
0AH
INT
21H
ENDM PUTCHAR MACRO
CHAR
MOV
DL,
CHAR
MOV
AH,
02H
INT
21H
ENDM CODE
SEGMENT
ASSUME
CS:CODE,DS:DATA,SS:STACK START:
MOV
AX, DATA
MOV
DS, AX
INPUT
BUFF
;讀取字符串?BUFF
PUTCHAR
0DH
PUTCHAR
0AH
;光標另起一行
MOV
CX, 0003H NEXT:PUTCHAR
2AH
LOOP
NEXT
MOV
CL, BUFF+1
SUB
CH, CH
MOV
BX, OFFSET
BUFF+2 BEGIN:
MOV
AL, [BX]
PUTCHAR
AL
INC
BX
LOOP
BEGIN
MOV
CX, 0003H NEXT1:
PUTCHAR
2AH
LOOP
NEXT1
MOV
AH, 4CH
INT
21H CODE
ENDS
END
START 執行程序 EXAM5-2·EXE,輸入 HELLO↙屏幕上顯示結果:
*** HELLO ***
實驗五
EXAM5-5
NAME
EXAM6
SSTACK
SEGMENT
STACK ’stack’
DB
1024 DUP(?)
SSTACK
ENDS
DATA
SEGMENT
ASKNAME
DB
0DH,0AH,’Enter the’
DB
’dest file name:$’
ASKCONT
DB
0DH,0AH,’Enter the string’
DB
’as file content:’0dh,0ah,’$’
FILEBUF
DB
62,63DUP(?)
HAND_D
DW?
MSGMER
DB
0DH,0AH,0AH
DB
’Directory full’,0DH,0AH,’$’
MSGWER
DB
0DH,0AH,0AH
DB
’Disk full’,0DH,0AH,’$’
MSGSUC
DB
0DH,0AH,0AH,
DB
’Write file is Successful’
DB
0DH,0AH,’$’
DATA
ENDS
DISPLY
MACRO
TEXT
MOV
DX,OFFSET
TEXT
MOV
AH,09H
INT
21H
ENDM
CRHAND
MACRO
PATH,ATTR
MOV
DX,OFFSET PATH
;文件名
MOV
CL,ATTR
;文件屬性
XOR
CH,CH
MOV
AH,3CH
INT
21H
ENDM
WRHAND
MACRO
HAND,BUFF,BYTE
MOV
BX,HAND
MOV
DX,OFFSET
BUFF
ADD
DX,2
MOV
CL,BYTE
XOR
CH,CH
MOV
AH,40H
INT
21H
ENDM
CLHAND
MACRO
HAND
MOV
BX,HAND
MOV
AH,3EH
INT
21H
ENDM
CODE
SEGMENT
PROG
PROC
FAR
ASSUME
CS:CODE,DS:DATA,SS:SSTACK
PUSH
DS
MOV
AX,0
PUSH
AX
MOV
AX,DATA
MOV
DS,AX
DISPLY
ASKNAME
;提示輸入文件名
MOV
DX,OFFSET
FILEBUF
MOV
AH,0AH
INT
21H
MOV
DI,OFFSET
FILEBUF[2]
MOV
BL,FILEBUF[1]
XOR
BH,BH
MOV
BYTE
PTR[BX][DI],00H
CRHAND
FILEBUF[2],0
;創建并打開新文件
JC
CRTERR
MOV
HAND_D,AX
;存文件句柄
DISPLY
ASKCONT
;提示鍵入文件內容
MOV
DX,OFFSET
FILEBUF
MOV
AH,0AH
INT
21H
WRHAND
HAND_D,FILEBUF,FILEBUF[1]
JC
WRITERR
CLHAND
HAND_D
DISPLY
MSGSUC
JMP
EXIT
CRTERR:
DISPLY
MSGMER
JMP
EXIT
WRITERR:DISPLY
MSGWER
EXIT:
RET
PROG
ENDP
CODE
ENDS
END
PROG
推薦訪問: 匯編 實驗 報告同志們:今天這個大會,是市委全面落實黨要管黨、從嚴治黨要求的一項重大舉措,也是對縣市區委書記履行基層黨建工作第一責任人情況的一次集中檢閱,同時是對全市基層黨建工作的一次再部署、再落實的會議。前面,**
***年,我認真履行領班子、帶隊伍、抓黨員、保穩定的基層黨建工作思路,以學習貫徹習近平新時代中國特色社會主義思想和黨的十九大歷次全會精神為主線,以市局基層黨建工作考核細則為落腳點,落實全面從嚴治黨主體
根據會議安排,現將2022年履行抓基層黨建工作職責情況報告如下:一、履職工作特色和亮點1 突出政治建設,著力在思想認識上提高。牢固樹立抓黨建就是抓政績的理念,以“黨建工作抓引領、社區治理求突破,為民服
2022年以來,在**黨委的正確領導下,堅持以習近平新時代中國特色社會主義思想為指導,深入學習宣傳貫徹黨的二十大精神,以黨建工作為統領,扎實開展夯實“三個基本”活動,以“四化四力”行動為抓手,聚力創建
各位領導,同志們:根據會議安排,現就2022年度抓基層黨建工作情況匯報如下:一、主要做法及成效(一)強化政治引領。一是不斷強化理論武裝。堅持通過黨組會、中心組學習會和“三會一課”,第一時間、第一議題學
2022年度抓基層黨建工作述職報告按照黨委工作部署,現將本人2022年度抓基層黨建工作情況報告如下:一、2022年度抓基層黨建工作情況(一)旗幟鮮明講政治將旗幟鮮明講政治放在全局發展首要位置,積極開展
2022年,是我在數計系黨總支書記這個新崗位上度過的第一個完整的工作年度。回首一年來在校黨委的正確領導下,與數計系領導班子和全體師生共同走過的日子,艱辛歷歷在目,收獲溫潤心田。作為黨總支書記,我始終牢
按照考核要求,現將本人一年來,作為統戰部長履行職責、廉潔自律等方面情況報告如下:一、著眼增強政治素質,不斷深化理論學習堅持把旗幟鮮明講政治作為履職從政的第一位要求,帶領統戰系統干部堅決擁護“兩個確立”
**年,緊緊圍繞黨工委、管委會的決策部署,全體人員團結協作、凝心聚力,緊扣黨工委“**”基本工作思路,全力開拓進取,認真履職盡責,圓滿完成各項工作任務。一、個人思想政治狀況檸檬文苑www bgzjy
按照縣委關于開展抓基層黨建述職評議會議的有關要求,經請示縣委組織部同意,今天,我們在此召開2022年度基層黨組織書記抓基層黨建述職評議會議。1 首先,請**黨委書記,**同志述職。**黨委能夠主動研究