微型計算機原理與接口技術(第三版)課后練習答案_第1頁
微型計算機原理與接口技術(第三版)課后練習答案_第2頁
微型計算機原理與接口技術(第三版)課后練習答案_第3頁
微型計算機原理與接口技術(第三版)課后練習答案_第4頁
微型計算機原理與接口技術(第三版)課后練習答案_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1思考與練習題

一、選擇題

1.計算機硬件中最核心的部件是()。C

A.運算器B.主存儲器C.CPUD.輸入/輸出設備

2.微機的性能主要取決于()。A

(B一一計算機數據處理能力的一個重要指標)

A.CPUB.主存儲器C.硬盤D.顯示器

3.計算機中帶符號數的表示通常采用()oC

A.原碼B.反碼C.補碼D.BCD碼

4.采用補碼表示的8位二進制數真值范圍是()。C

A.T27?+127B.-127~+128C.T28?+127D.T28?+128

5.大寫字母“B”的ASCH碼是()oB

A.41HB.42HC.61HD.62H

6.某數在計算機中用壓縮BCD碼表示為10010011,其真值為()?C

A.1001001IBB.93HC.93D.147

二、填空題

1.微處理器是指CPU:微型計算機以CPU為核心,配置內存和1/0接口構成;其特點

是(1)功能強(2)可靠性高(3)價格低(4)適應性強(5)體積?。?)維護方便。P8P5

2.主存容量是指RAM和ROM總和:它是衡量微型計算機計算機數據處理能力的一個重要

指標;構成主存的器件通常采用DRAM和PROM半導體器件。P5P9

3.系統(tǒng)總線是CPU與其他部件之間傳送數據、地址和控制信息的公共通道:根據傳送內容

的不同可分成數據、地址、控制3種總線。P9

4.計算機中的數據可分為數值型和非數值型兩類,前者的作用是表示數值大小,進行算

術運算等處理操作;后者的作用是表示字符編碼,在計算機中描述某種特定的信息。P12

5.機器數是指一數及其符號在機器中加以表示的數值化_;機器數的表示應考慮機器數的范

圍、機器數的符號、機器數中小數點位置3個因素。P15P16

6.ASCH碼可以表示128種字符,其中起控制作用的稱為功能碼:供書寫程序和描述命

令使用的稱為信息碼。P18P19

三、判斷題

1.計算機中帶符號數采用補碼表示的目的是為了簡化機器數的運算。()》

2.計算機中數據的表示范圍不受計算機字長的限制。()X

3.計算機地址總線的寬度決定了內存容量的大小。()?

4.計算機鍵盤輸入的各類符號在計算機內部均表示為ASCH碼。()X

(鍵盤與計算機通信采用ASCII碼)

四、簡答題

L微處理器和微型計算機的發(fā)展經歷了哪些階段?各典型芯片具備哪些特點?P2~3

2.微型計算機硬件結構由哪些部分組成?各部分的主要功能和特點是什么?P8~ll

3.微型計算機系統(tǒng)軟件的主要特點是什么?包括哪些內容?P1T12

4.計算機中常用的數制有哪些?如何進行數制之間的轉換?P13~15

5.ASCII碼和BCD碼有哪些特點?其應用場合是什么?P19~20

五、數制轉換題

1.將下列十進制數分別轉換為二進制數、十六進制數和壓縮BCD碼。

(1)25.8211001.1101B;19.DI1;00100101.10000010BCD

(2)4120010B;19C.2H;040000010010.00010101BCD

(3)513.461000000001.0111;201.7H;010100010011.01000110BCD

(4)690010;45.2H;01011001.000100110110BCD

2.將下列二進制數分別轉換為十進制數和十六進制數。

(1)111001.10157.625D;39.AH

(2)110010.110150.8125D;32.DH

(3)1011.1101111.84375D;B.D8H

(4)101101.011145.4375D;21).7H

3.將下列十六進制數分別轉換為二進制數、十進制數和BCD碼。

(D7B.211111011.00100001B;123.12890625D;123.12890625BCD

(2)127.IC100100111.000111B;295.06640625D;295.06640625BCD

(3)6A1.4110110100001.0100000IB;1697.25390625D;1697.25390625BCD

(4)2DF3.410110111110011.01B;11763.25D;11763.25BCD

4.寫出下列十進制數的原碼、反碼、補碼表示(采用8位二進制數)。

(1)96[96]原=01100000;[96]反=01100000;[96]補=01100000

(2)31[31]原=00011111;[31]反=00011111;[31]補=00011111

(3)-42[-42]原=10101010;[-42]反=11010101;[-42]#=11010110

(4)-115[T15]原=11110011;[-115]反=10001100;[-115④卜=10001101

5.己知下列補碼,求其原值的十進制表示.

(1)92H-110D

(2)8DH-115D

(3)B2H-781)

(4)4C26H+19494D

6.按照字符所對應的ASCII碼表示,查表寫出如下字符的ASCII碼:

a、K、G、+、DEL、SP、CR、$。

61H4BH47H2BH7FH20HODH24H

2思考與練習題

一、選擇題

1.在EU中起數據加工與處理作用的功能部件是()。A

A.ALUB.數據暫存器C.數據寄存器D.EU控制電路

2.以下不屬于BIU中的功能部件是()0B

A.地址加法器B.地址寄存器C.段寄存器D.指令隊列緩沖器

3.堆棧操作中用于指示棧頂地址的寄存器是()。B

A.SSB.SPC.BPD.CS

4.指令指針寄存器(IP)中存放的內容是()?B

A.指令B.指令地址C.操作數D.操作數地址

5.8086系統(tǒng)可訪問的內存空間范圍是()。B

A.OOOOH-FFFFHB.00000H?FFFFFH

C.0~2'6D.0~220

6.8086的1/0地址空間采用16位數尋址時,可訪問的端門數容量為()。C

A.16KBB.32KBC.64KBD.1MB

7.8086最大和最小工作方式的主要差別是()。D

A.數據總線的位數不同B.地址總線的位數不同

C.I/O端口數的不同D.單處理器與多處理器的不同

二、填空題

1.8086的內部結構由工工和BIU一組成,前者功能是執(zhí)行指令,后者功能是總線操作。

P24P26

2.8086取指令時,會選取CS作為段基值,再加上由」P提供的偏移地址形成20位物理地

址。

3.8086有兩種外部中斷請求線,它們分別是INTR和NMI。P32

4.8086的標志寄存器共有個標志位,分為6個狀態(tài)標志位和3個控制標志位。P28

5.8086為訪問1MB內存空間,將存儲器進行分段管理;其物理地址是唯一的;偏移地

址是指相對段基地址的偏移量;邏輯地址常用于程序中。P29P20P34P35

6.邏輯地址為1000H:0230H時,其物理地址是10230H,段地址是1000H,偏移量是

0230H,

7.時鐘周期是指CPU基本時間計量單位,總線周期是指一次總線操作時間,總線操作是

指CPU經外部總線對存儲器或I/O端口進行一次信息輸入和輸出的過程。P37

8.8086工作在最大方式時CPU引腳MN/-MX應接地;最大和最小工作方式的應用場合分別

是多處理器和單處理器系統(tǒng)。P38P39

三、判斷題

1.IP中存放的是正在執(zhí)行的指令偏移地址。()X

2.從內存單元偶地址開始存放的數據稱為規(guī)則字。()4

3.EU執(zhí)行算術和邏輯運算后的結果特征可由控制標志位反映出來。()X

4.指令執(zhí)行中插入”,和T,是為了解決CPU與外設之間的速度差異。()X

5.總線操作中第1個時鐘周期通常是取指周期。()X

6.8086系統(tǒng)復位后重新啟動時從內存地址FFFFOH處開始執(zhí)行。()J

四、簡答題

1.8086微處理器中的指令隊列起什么作用(EU從指令隊列取指令的緩沖作用),其長度是多

少字節(jié)(6個字節(jié))?P26

2.什么是邏輯地址(無符號32位二進制數),它由哪兩部分組成(段地址和偏移地址)?8086

的物理地址是如何形成的(物理地址=段地址*10H+偏移地址)?P35

3.8086微機系統(tǒng)中存儲器為什么要分段(8086系統(tǒng)內的地址寄存器均是16位,只能尋址

64KB;將1MB存儲器分成邏輯段,每段不超過64KB空間,以便CPU操作。),各邏輯段之間

的關系如何(可重疊、交叉、緊密連接和分離)?P34

4.I/O端口有哪兩種編址方式(統(tǒng)一編址和獨立編址),8086的最大I/O尋址空間是多少

(64KB)?P36

5.8086的最大工作模式(8086、8087和8089通過總線控制器8288產生對總線的控制信號)

和最小工作方式(8086直接產生總線控制信號)的主要區(qū)別是什么?他們分別應用在何種場

合(多處理器和單處理器系統(tǒng))?P39

6.簡述實地址方式(山段地址和偏移地址計算產生物理地址,其物理地址可以超過20位)和

虛擬8086方式(由段地址和偏移地址計算產生的有效物理地址為20位)的區(qū)別。P41

7.簡述Pentium微處理器的主要特性。P44

五、分析題

1.有一個由10個字組成的數據區(qū),其起始地址為1200H:0120H。試寫出該數據區(qū)的首末存

儲單元的實際地址(12120H~12120H+10*2T=12133H)。

2.若一個程序段開始執(zhí)行之前,(CS)=33AOH,(IP)=0130H,試問該程序段啟動執(zhí)行指令的實

際地址是什么(33A00H+0130II=33B30H)?

3.有兩個16位的字31DAH和5E7FH,它們在8086系統(tǒng)存儲器中的地址分別為00130H和

00134H,試畫出它們的存儲示意圖。

地址存儲空間

00130HODAH

00131H31H

00134H7FH

00135H5EH

4.將字符串“Good!”的ASCII碼依次存人從01250H開始的字節(jié)單元中,畫出它們存放的內

存單元示意圖。

地址存儲空間

01250H

01251H

01252H

01253H

01254H

5.8086微處理器讀/寫總線周期各包含多少個時鐘周期(4個時鐘周期)?什么情況下需要插

入T”等待周期(當4上升沿檢測到READY=0時,在Ts與「之間插入T,)?應插入多少個T”,

取決于什么因素(READY=0持續(xù)的時間長短)?什么情況下會出現空閑狀態(tài)T,(BIU不執(zhí)行總

線操作的時鐘周期。例如:8086執(zhí)行MUL、DIV指令長指令時,BIU有段時間不執(zhí)行總線操

作;因此,插入TJ?P38

3思考與練習題

一、選擇題

1.寄存器間接尋址方式中,要尋找的操作數位于()中。B

A.通用寄存器B.內存單元C.段寄存器D.堆棧

2.下列指令中正確的是()。C

A.MOVAL,BXB.MOVCS,AXC.MOVAL,CLD.MOV[BX],[SI]

3.下列指令中錯誤的是()。C

A.MOVAX,1234HB.INCBXC.SRLAX,2D.PUSHDX

4.設(SP)=1010H,執(zhí)行POPAX后,SP中的內容為()。B

A.10UHB.1012HC.100EHD.100FH

5.給定(AL)=80H,(CL)=02H,指令SHR八1,比執(zhí)行后的結果是()。B

A.(AL)=40HB.(AL)=20HC.(AL)=COHD.(AL)=EOH

6.將AX清零并使CF位清零,下面指令錯誤的是()。A

A.SUBAX,BXB.XORAX,AXC.MOVAX,0(不影響FR)D.ANDAX,000011

二、填空題

1.計算機指令通常由操作碼字段和操作數字段兩部分組成:指令對數據操作時.按照數

據的存放位置可分為立即數、寄存器操作數、存儲器操作數。

2.尋址的含義是指尋找操作數的過程;8086指令系統(tǒng)的尋址方式按照大類可分為與操作

數有關的尋址方式、與I/O端U有關的尋址方式;其中尋址速度最快的是立即數尋址。

P54~P57

3.指令MOVAX,ES:[BX+0100H]中,源操作數位于物理地址為ES*10H+BX+0100H的存儲單元

;讀取的是附加數據ES段的存儲單元內容。

4.堆棧是一個特殊的存儲器區(qū)域,其操作是以2字節(jié)單元為單位按照先進后出原則

來處理;采用一段指向棧頂地址,入棧時地址變化為SP<=(SP)-2。P57

5.I/O端口的尋址有直接端口尋址和間接端口尋址兩種方式;采用8位數端口地址(直接

端口尋址)時,可訪問的端口地址為02255;采用16位數端口地址(間接端口尋址)時,

可訪問的端口地址為0~65535。P57~P58

三、分析計算題

1.指出如下指令中源操作數和目的操作數的尋址方式:

(l)MOVAX,100H(2)MOVCX.AX

(3)ADD[SI],1000(4)SUBBX,[SI+100]

(5)MOV[BX+300],AX(6)ANDBP,[DI]

源操作數目的操作數

(DMOVAX,100H立即數寄存器

(2)MOVCX,AX寄存器寄存器

(3)ADD[SI],1000立即數寄存器間接

(4)SUBBX,[SI+100]變址寄存器

(5)MOV[BX+300],AX寄存器變址

(6)ANDBP,[DI]寄存器間接寄存器

2.分析如下指令的正誤,對錯誤指令說明出錯誤原因并加以收正:

(l)MOV[1200],23H(2)MOV1020H,CX

(3)MOV[1000H],[200011](4)MOVIP,00011

(5)PUSHAL(6)OUTCX,AL

(7)INAL,[80H](8)MOVCL,3300H

(DMOV[1200],23H;未指明數據類型MOVBYTEPTR[1200],23H

(2)MOV1020H,CX;立即數不能作為目標操作數MOV[1020H],CX

(3)MOV[1000H],[2000H];兩操作數不能均是內存單元MOVBYTEPTR[1000H],2000H

(4)MOVIP,000H;IP不能在MOV指令中出現JMP00011

(5)PUSHAL;操作數必須是16位PUSHAX

(6)OUTCX,AL;CX不能作為端口地址的間接訪問寄存器OUTDX,AL

(7)INAL,[80H];直接端口地址寫法錯誤INAL,8011

(8)MOVCL,3300H;兩操作數的數據類型不一致MOVCX,3300H

3.給定(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,

(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65Ho試分析如下

指令執(zhí)行后,AX寄存器中的內容:

(l)MOVAX,120011(2)MOVAX,BX

(3)MOVAX,[1200H](4)MOVAX,[BX]

(5)MOVAX,110011[BX](6)MOVAX,[BX+SI]

(7)MOVAX,[1100H+BX+SI]

(DMOVAX,1200H;(AX)=1200H

(2)MOVAX,BX;(AX)=0100H

(3)MOVAX,[1200H];(AX)=4C2AH

(4)MOVAX,[BX];(AX)=3412H

(5)MOVAX,1100HEBX];(AX)=4C2AH

(6)MOVAX,[BX+SI];(AX)=7856H

(7)MOVAX,[1100H+BX+SI];(AX)=65B7H

4.己知(AX)=75A4H,CF=1,分別寫出如下指令執(zhí)行后的結果:

(DADDAX,08FFH(2)INCAX

(3)SUBAX,4455H(4)ANDAX,OFFFH

(5)ORAX.0101H(6)SARAX,1

(7)RORAX,1(8)ADCAX,5

(DADDAX,08FFH(AX)=7EA3HCF=0

(2)INCAX(AX)=75A5HCF=1

(3)SUBAX,4455H(AX)=314FHCF=0

(4)ANDAX,OFFFH(AX)=05A4HCF=O

(5)ORAX,0101H(AX)=75A5HCF=0

(6)SARAX,1(AX)=3AD2HCF=O

(7)RORAX,1(AX)=3AD2HCF=0

(8)ADCAX,5(AX)=75AAHCF=O

5.給定(SS)=8000H,(SP)=200011,(AX)=7A6CH,(DX)=3158H?執(zhí)行如下程序段,畫出每條指

令執(zhí)行后寄存器的內容和堆棧存儲內容的變化情況:

PUSHAX

PUSHDX

POPBX

POPCX

PUSHAX;(AX)=7A6CH,(SP)=1FFEH,(81FFEH)=7A6CH

PUSHDX;(DX)=3158H,(SP)=1EFCH,(81EECH)=3158H

POPBX;(BX)=3158H,(SP)=1FFEH

POPCX;(CX)=7A6CH,(SP)=2000H

6.試分析如下程序段執(zhí)行完后,BX的內容:817FII

MOVBX,1030H;(BX)=1030H

MOVCL,3;(CL)=3

SHLBX,CL;(BX)=8180H

DECBX;(BX)=817FH

四、設計題

1.現有兩個雙倍精度字數據1234FEDCII和1123876511,分別存放在數據段中從1000H和2000II

開始的存儲單元中,低位在前,高位在后。要求兩數相加之后所得的和放在從1000H開始的

內存單元中,設計該程序段。

;3_4_1.ASM

MOVSI,200011;SI指向2000H

MOVDI,1000H;DI指向1000H

CLC;CF=O

MOVCX,4;CX=4,循環(huán)相加4次

LL:MOVAL,[SI];取數

ADCAL,[DI];相加

MOV[DI],AL;保存

INCSI;SI增1

INCDI;1)1增1

LOOPLL;CX減1,不為0,轉LL

MOVAX,0

ADCAX,0

MOV[DILAX

2.設AX、BX中保存有帶符號數,CX、DX中保仔無符號數,請寫出實現以下功能的指令或程

序段。

⑴若(CX)〈(DX),則轉移到NEXT1。

CMPCX,DX

JBNEXT1

(2)若(AX)XBX),則轉移到NEXT2,

CMPAX,BX

JGNEXT2

(3)若(CX)=0,則轉移到NEXT3.

CMPCX,0或JCXZNEXT3

JENEXT3

(4)若AX中內容為負,則轉移到NEXT4。

TESTAX,8000H或ADDAX,0

JNZNEXT4或JSNEXT4

3.設堆棧寄存器(SS)=2250H。堆棧指示器(SP)=0140H,若在堆棧中存入5個字數據,則SS、

SP的內容各是多少?[(SS)=2250H、(SP)=0136H]如果又取出2個字數據,SS、SP的內容各

是多少?[(SS)=2250H、(SP)=013AH]

4思考與練習題

一、選擇題

1.匯編語言程序中可執(zhí)行的指令位于()中。C

A.數據段B.堆棧段C.代碼段D.附加數據段

2.以下內容不是標號和變量屬性的是()oB

A.段屬性B.地址屬性C.偏移屬性D.類型屬性

3.DOS功能調用中采用屏幕顯示單個字符,其值保存在()寄存器。C

A.ALB.AHC.DLD.DH

4.DOS功能調用中,從鍵盤讀取一個字符并回顯的是()。A

A.01HB.02HC.09HD.OAH

5.循環(huán)程序設計中,要考慮的核心問題是()。1)

A.循環(huán)的控制B.選擇循環(huán)結構C.設置循環(huán)參數初始值D.修改循環(huán)控制參數

6.對于宏指令和子程序,下列說法不正確的是()。D

A.宏指令不能簡化目標程序

B.子程序可以簡化目標程序,但執(zhí)行時間長

C.子程序在執(zhí)行過程中由CPU處理

1).宏指令在執(zhí)行時要保護和恢復現場

二、填空題

1.匯編語言是一種面向CPL:指令系統(tǒng)的程序設計語言,采用指令助記符表示操作碼和操

作數,用符號地址表示操作數地址。P82

2.匯編語言的語句可由名字、操作符、操作數、注釋四部分組成;其中一操作符.是必須具

備的。P83

3.機器指令是指發(fā)送給CPL.的命令,在運行時由一CPU_執(zhí)行;偽指令是發(fā)送給匯編程序的

命令,在匯編過程中由匯編程序進行處理:宏指令是指代表一段源程序,通常用于

經常用到的一個程序段場合。P87、P107

4.子程序的基本結構包括子程序說明、現場保護及恢復、子程序體、子程序返回等幾個部

分;子程序的參數傳遞有寄存器、堆棧、存儲器等方法。P104、P105

5.DOS功能調用可完成對完成對文件、設備、內存的管理;BIOS的主要功能是外設的控

制;如系統(tǒng)加電自檢、引導裝入及對鍵盤、磁盤、顯示器、打印機、異步串行通信口等的控

虬。

6.給定如下程序段,在每條指令的右邊寫出指令的含義和操作功能,指出該程序段完成的功

能及運行結果:

MOVAX,0;AX<=0

MOVBX,1;BX<=1

MOVCX,5;CX<=5

LP:ADDAX,BX;AX<=AX+BX

ADDBX,2;BX<=BX+2

LOOPLP;CX〈=CX—1;若CXWO,轉LP

HLT;停機

5

(1)該程序段完成的功能是一Z2〃+1_。

(2)程序運行后:(AX)=36;(BX)=_H_;(CX)=_0_?

三、判斷題

1.偽指令是在匯編中用于管理和控制計算機相關功能的指令。()X

2.程序中的“$”可指向下一個所能分配存儲單元的偏移地址。(

3.宏指令的引入是為了增加匯編程序的功能。()V

4.多重循環(huán)的內循環(huán)要完整地包含在外循環(huán)中,可嵌套和并列。(

5.子程序結構縮短了程序的長度,節(jié)省了程序的存儲空間。()J

四、簡答題

1.完整的匯編源程序應該由哪些邏輯段組成(數據段、堆棧段、代碼段)?各邏輯段的主要作

用是什么(存放數據變量及其預置初值、保存中斷和子程序的斷點和參數傳遞、存放程序執(zhí)

行的代碼)?P87

2.簡述在機器上建立(為源程序起一個有意義的文件名字,并創(chuàng)建成文本文件)、編輯(在文

本編輯軟件EDIT.EXE環(huán)境下,輸入和編輯源程序)、匯編(通過匯編程序ASM.EXE或

MASN.EXE,將源程序會變成機器語言目標程序.OBJ)、連接(運用連接程序LINK.EXE,將目

標程序.OBJ連接生成執(zhí)行程序.EXE)、運行(在DOS狀態(tài)下,直接運行執(zhí)行程序)、調試(運

用調試程序DEBUG.EXE將執(zhí)行程序跳入調試界面狀態(tài),并進行斷點設置調試運行或單步調試

運行操作)匯編語言源程序的過程和步驟。P94

3.什么是偽指令(發(fā)送給匯編程序的命令)?程序中經常使用的偽指令有哪些(數據定義、符

號定義、段定義、過程定義、結構定義、模塊定義與連接、程序計數器$和起點定義ORG)?

簡述其主要功能(數據定義為變量及其類型分配存儲單元,并賦予初值;符合定義給一個符

號重新命名;段定義指定邏輯段的名稱、范圍、斷的定位類型、組合類型和類別;過程定義

為程序段定義成過程,并賦予過程名字,以便用CALL指令調用;結構定義用于相互關聯(lián)的

數據定義;模塊定義與連接用NAME為源程序匯編后的目標程序指定模塊名,以便連接該目

標模塊,并生成執(zhí)行程序文件;$在匯編過程中,用于存儲單元分配計數器,該計數器可在

指令操作數表達式中引用;ORG為數據變量和程序段指定起始位置。)?P87~P93

4.什么是宏指令(代表某功能的一段源程序)?宏指令在程序中如何被調用(在源程序中,通

過宏名字(即宏指令名)進行調用)?P107

5.子程序與宏指令在程序的使用中有何共性(宏和子程序都可用來簡化程序,并可使程序多

次對它們調用。)及不同特點(宏操作可直接傳遞和接收參數,不通過堆?;蚱渌浇?;子程

序不能直接帶參數,需有傳遞參數時,必須通過堆棧寄存器和存儲器進行。宏調用只能簡化

源程序的書寫,并沒有縮短目標代碼長度;子程序調用能縮短目標程序長度。應用好操作并

不會在執(zhí)行目標代碼時增加額外的時間開銷;子程序調用由于需要保護和恢復現場和斷點,

因而延長目標程序的執(zhí)行時間)?P109

五、設計題

1.編程實現求S=(X2+Y2)/Z的值,并將結果放入RESULT單元。

;XT451.ASM

DATASEGMENT;定義數據段

XDW15

YDW-32

ZDW280

RESULTDW2DUP(?);定義結果保存單元

DATAENDS;數據段結束

CODESEGMENT;定義代碼段

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA;初始化DS

MOVDS,AX

MOVAX,X;取出被乘數X存入AX中

IMULX;執(zhí)行X2操作

MOVCX,AX;乘積的低位字轉存至CX

MOVBX,DX;乘積的高位字轉存至BX

MOVAX,Y;取出被乘數X存入AX中

IMULY;執(zhí)行丫?操作

ADDAX,CX;X2+Y2的低位字與Z的低位字相加

ADCDX,BX;X2+Y2的高位字相加

IDIVZ;(X2+Y2)/Z

MOVRESULT,AX;商存入RESULT單元

MOVRESULT+2,DX;余數存入RESULT+2單元

MOVAH,4CH

INT21H;返回DOS

CODEENDS;代碼段結束

ENDSTART;匯編結束

2.編程序完成計算S=(A+B)/2-2(AANDB)。

;XT4_5_2.ASM

DATASEGMENT;定義數據段

ADW15

BDW-32

SDW?

RESULTDW2DUP(?);定義結果保存單元

DATAENDS;數據段結束

CODESEGMENT;定義代碼段

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA;初始化DS

MOVDS,AX

MOVAX,A;取出被乘數A存入AX中

ADDAX,B;A+B

SARAX,1;(A+B)/2

MOVBX,AX;存入BX中

MOVAX,A;取出被乘數A存入AX中

ANDAX,B;AANDB

SALAX,1;(AANDB)*2

SUBBX,AX:(A+B)/2-2(AANDB)

MOVS,BX;存入S單元

MOVAH,4CH

INT21H;返回DOS

CODEENDS;代碼段結束

ENDSTART;匯編結束

3.試編程實現將內存中的若干個無符號字數據中的最大值和最小值找出來,并開辟獨立的存

儲區(qū)域保存結果。

;XT4_5_3.ASM

DATASEGMENT

ARRDW123,456,67,0,34,90,89,67,0,256

CNEQU($-ARR)/2

ZDDW0;最大(數組中任何數均大于AX內容)

ZXDWOFFFFH;最小(數組中任何數均小于BX內容)

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX;初始化DS

MOVSI,OFFSETARR;數組首地址送SI

MOVCX,CN;數組元素個數送CX

CALLQZDZXS;調用近過程QZDZXS(求最大最小數)

MOVAH,4CH

INT21H;返回DOS

;求最大最小數子程序名:QZDZXS

;子程序功能:求一組字數據中的最大最小數

;入口參數:數組首地址在SI中,數組個數在CX中

;出口參數:最大數在ZD中,最小數在ZX中

;使用寄存器用X、DX、SI及PSW

QZDZXSPROCNEAR

PUSHSI

SH

DX

PSU

nCX;保護現場

M^

ZDZXO:DX,[SI];取一個數組元素送DX

CP

ZD,DX;AX中內容和DX中內容比較

JB

ZDZX1;(ZD)XDX),轉ZDZX1

MV

ZD,DX;較大數存入ZD

CP

ZDZX1:ZX,DX;AX中內容和DX中內容比較

JA

ZDZX2;(ZX)<(DX),轉ZDZX1

MV

DZX,DX;較小數存入ZX

ZDZX2:AOSI,2;數組指針加2調整

D

]LP-ZDZXO;循環(huán)控制

PCX

POPDX

POPSI;恢復現場

RET;返回主程序

QZDZXSENDP;子程序定義結束

CODEENDS;代碼段結束

ENDSTART;匯編結束

4.編寫程序,計算如下函數的值:

fIX,X<0

S=<3X,0WXW10

、4X,0>10

;XT4_5_4.ASM

DATASEGMENT

XDB15

SDB?

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX

MOVAL,X

TESTAL,80H

JZLLO

SALAL,1;2X

JMPLL10

LLO:CMPAL,10

JGLL1

MOVBL,AL

SALAL4;3X

ADDAL,BL

JMPLL10

LL1:SALAL,1;4X

SALAL,1

LL10:MOVS,AL

MOVAH,4CH

INT21H;返回DOS

CODEENDS

ENDSTART;匯編結束

5.從鍵盤輸入一系列字符,以回車符結束,編寫程序統(tǒng)計其中非數字字符的個數?

;XT4_5_5.ASM

DATASEGMENT

NUMDB0;統(tǒng)計變量

DATAENDS

STACKSEGMENTSTACK;定義堆棧段

DB100DUP(?);開辟100個存儲單元

STACKENDS;堆棧段結束

CODESEGMENT;定義代碼段

ASSUMECS:CODE,SS:STACK,DS:DATA

START:MOVAX,DATA

MOVDS,AX

LLL:MOVAH,01H;1號調用,從鍵盤輸入一字符存入AL

INT21H

CMPAL,13;與“回車符”的ASCII碼比較

JZL2;是“回車符”,轉L2(退出)

CMPAL,30H;與“0”的ASCII碼比較

JBLI;低于“0”的非數字字符ASCII碼,轉L1(統(tǒng)計)。

CMPAL,39H;與“9”的ASCII碼比較

JALI;高于“9”的非數字字符ASCII碼,轉L1(統(tǒng)計)。

JMPLLL

LI:INCNUM;非數字字符,統(tǒng)計;計數增1.

JMPLLL;轉LLL(繼續(xù))

L2:MOVDL,OAH;設置換行符

MOVAH,02H;設置顯示功能號

INT21H;換行

MOVDL,NUM;設置顯示統(tǒng)計數字(8位二進制數)

MOVCL,4

SHRDL,CL;保留高4位二進制數

ORDL,30H;轉換成ASCII碼(高1位十六制數的ASCII)

MOVAH,02H;設置顯示功能號

INT21H;顯示高1位十六制數的ASCH

MOVDL,NUM;設置顯示統(tǒng)計數字(8位二進制數)

ANDDL,0FH;保留低4位二進制數

ORDL,30H;轉換成ASCII碼(低1位十六制數得ASCII)

MOVAH,02H;設置顯示功能號

INT21H;顯示低1位十六制數的ASCII

MOVDL/H’;設置顯示'H'

MOVAH,02H;設置顯示功能號

INT21H;顯示'H'

MOVAH,4CH;設置返回DOS功能碼。

INT21H;返回DOS

CODEENDS;代碼段結束

ENDSTART;程序匯編結束

6.編程實現將鍵盤連續(xù)輸入的小寫字母用大寫字母顯示出來,小寫字母與大寫字母之間采用

號分隔,當輸入非小寫字母時程序停止處理。

;XT456.ASM

STACKSEGMENTSTACK;定義堆棧段

DB100DUP(?);開辟100個存儲單元

STACKENDS;堆棧段結束

CODESEGMENT;定義代碼段

ASSUMECS:CODE,SS:STACK

START:MOVAH,01H;1號調用,從鍵盤輸入一字符存入AL

INT21H;輸入并回顯

MOVBL,AL;保存從鍵盤輸入字符

CMPALJa,;與“曖的ASCII碼比較

JBL3;低于“a”的ASCH碼,轉L3(退出)。

CMPAL";與2”的ASCII碼比較

JAL3;高于“a”的ASCII碼,轉L3(退出)。

SUBAL,20H;將AL中字符的ASCII碼減去20H變成大寫字母。

MOVBL,AL;保存結果

MOVDL,<;顯示字符u送DL

MOVAH,02H;2號調用,在顯示器上顯示字符

INT21H;顯示u

MOVDL,BL;結果(大寫字母)送DL。

MOVAH,02H;2號調用,在顯示器上顯示DL中的內容(大寫字母)。

INT21H;顯示大寫字母

MOVDL,20H;空格送DL。()

MOVAH,02H;2號調用,在顯示器上顯示DL中的內容(大寫字母).

INT21H;顯示空格(使兩結果用空格隔開)

JMPSTART;不是“回車符",轉START(繼續(xù))

L3:MOVAH,4CH;是“回車符,,,設置返回DOS功能碼。

INT21H;返回DOS

CODEENDS;代碼段結束

ENDSTART;程序匯編結柬

7.在數據段中有一個字節(jié)數組,編程統(tǒng)計其中正數的個數放入、單元保存,統(tǒng)計負數的個數

放入B單元保存。

;XT4_7.ASM

DATASEGMENT

ARRDB-13,46,67,0,-34,-90,89,67,0,26

CNEQU$-ARR;數組長度

ADW?;正數個數統(tǒng)計結果變量

BDW?;負數個數統(tǒng)計結果變量

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX;初始化

MOVSI,OFFSETARR;敢組首地址送SI

MOVCX,CN;數組元素個數送CX

L0:MOVDL,[SI];取一個數組元素送DX

TESTDL,80H;DX中內容和0比較

JNZ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論