实验一:基本运算

请在数据段中定义两个数,要求编写程序分别计算出这两个数的和、差、积、商,并用Debug的相关命令查询计算结果。
要求:熟悉MASM运行环境,学习使用Debug的相关命令;所有计算结果将存放在DS:0010H开始的连续存储单元中,并用Debug的相关命令查询计算结果

; multi-segment executable file template.data    segment; add your data here!;定义16位的变量,变量名:NUM1,伪指令:DW,操作数:20、10,使用?表示预留空间;2 DUP(10),表示重复,重复次数为2,内容为10NUM1 DW 20 ;第一个数字,NUM2 DW 10 ;第二个数字,
data ends
code segment  MAIN PROC FAR;段:MAIN,偏移量:PROC,类型:FAR,段间引用,定义过程ASSUME CS:code,DS:DATA;声明段寄存器
start:
; set segment registers:
;退出程序返回DOS的操作,在代码段的主程序的开始部分用三条指令,
;把 PSP中 INT 20H指令的段地址(CS=DS=ES)及偏移地址(0)压入堆栈:
;这样,程序执行到主程序的最后 一条指令 RET 时,由于过程具有FAR(段间调用)属 性,
;故存在堆栈内的两个字分别弹出到 IP及 CS,
;便执行 INT 20H 指令,返回到DOS。PUSH DS;将INT 20H指令的段地址压入堆栈,MOV  AX,0;偏移地址(0)压入堆栈PUSH AX;AX MOV AX,DATA;AX 存入DATAMOV DS,AX;AX存入DS,数据存入DSMOV AX,NUM1;NUM1存入AXADD AX,NUM2; NUM1+NUM2并存入AXMOV DS:[0010h],AX;AX 存入DS;MOV [0010h],AX;AX 存入DSMOV AX,NUM1;NUM1存入AXSBB AX,NUM2;NUM1-NUM2MOV DS:[0010h+2],AX;差存入DSMOV AX,NUM1;NUM1存入AXMUL NUM2;NUM1*NUM2;MOV DS:[0014h],DX;存入积高16MOV DS:[0010h+4],Ax;存入积低16MOV AX,NUM1;NUM1存入AXDIV NUM2;NUM1/NUM2MOV DS:[0010h+6],DX;余数在DX中,存入余数MOV DS:[0010h+8],Ax;商在AX中,存入商RETMAIN ENDP;结束MAIN过程
code ends
end start ; set entry point and stop the assembler.

实验二:查询平方

内存自TABLE开始的连续16个单元中存放着0-15的平方值,查表求DATA中任意数X(0≤X ≤15)的平方值,并将结果放在RESULT中。

要求:掌握汇编语言的程序调试方法,并熟练使用debug指令。

DATA SEGMENTTB db 1,4,9,16,25,36,49,64,81,100,121,144,169,196,225inputn db 4 dup(0);输入的数字errhint db 'input errror!$'k db 1;数字转ascii时使用的中间变量num db 0;经过转换得到的数字square db 0;输入数字的平方OBUF db 'input the number you want to search square: $';输入提示 outhint1 db 'The square of $' ; 输出提示1outhint2 db ' is: $'   ;输出提示2
DATA endsCODE SEGMENTASSUME CS:CODE,DS:DATA;声明代码段、数据段和堆栈段寄存器
start: ;数据转存到数据段MOV AX,DATA;MOV DS,AX;;MOV SI,OFFSET IBUFMOV AH,9;调用dos 9号功能显示字符MOV DX,OFFSET OBUF;显示提示符>并回车换行INT 21H;lea si,inputnmov cx,3input:mov ah,1int 21hcmp al,48;小于0的ascii码jl inputerrcmp al,57;大于9的ascii码jg outputerrmsgmov ah,alsub ah,48;ascii转换mov [si],ah;存储输入的数字INC siloop inputinputerr:cmp al,0dh;如果是回车jz getNpre;结束输入,准备提取数字jnz outputerrmsggetNpre:;计算输入的数字准备mov ax,silea bx,inputnsub ax,bx;计算数字位数mov cx,ax;设置循环DEC si;输入回车时多加了1getN:;计算输入的数字mov al,[si]MUL kadd num,almov al,k;k增大10倍mov dl,10MUL dlmov k,alDEC siloop getNjmp getsqurepre;获取输入数字平方准备
getsqurepre:mov ch,num;保护num mov al,num ;计算平方MUL nummov square,almov num,ch mov cx,15;设置循环lea bx,TBjmp getsqure;获取输入数字的平方
getsqure:mov al,[bx]cmp square,aljz outresINC bxloop getsqurejmp outputerrmsg;输出错误消息
outputerrmsg:mov ah,2mov dl,0dhint 21hmov dl,0ahint 21hmov ah,9mov dx,offset errhintint 21hjmp done;输出结果
outres:;输出结果mov ah,2mov dl,0dhint 21hmov dl,0ahint 21h;第一条提示信息mov ah,9mov dx,offset outhint1int 21h;输入数字ascii转换mov al,num cbw ;拓展almov dl,10div dladd al,48;商ascii转换add ah,48;余数ascii转换mov dh,ah;保存余数;输出输入的数字mov ah,2mov dl,alint 21hmov ah,2mov dl,dhint 21h;第二条提示信息mov ah,9mov dx,offset outhint2int 21h;平方ascii转换mov al,square cbwmov ah,0;消除ah拓展产生的乱码mov dl,10div dlcmp al,10;检查商是否大于等于10 jge sqrmrethn100;商小于10mov dh,ah;保存余数add al,48;ascii转换add dh,48mov ah,2mov dl,alint 21hmov ah,2mov dl,dhint 21hjmp done;处理大于等于100的平方
sqrmrethn100:mov bl,al;转存第一次除法的商和余数mov bh,ahmov al,blcbw ;拓展为16位mov dh,10div dhmov dh,ah;转存第二次除法的余数add al,48 ;ascii转换add dh,48add bh,48;输出mov ah,2mov dl,al;百位int 21hmov ah,2mov dl,dh;10位int 21hmov ah,2mov dl,bh;个位int 21hjmp done;返回系统
DONE:MOV ah,4ch;INT 21h;CODE ends
end start

注意DS存在默认的一个最大值,如果不显式开辟,将会采用默认值

注意:使用cbw时注意检查ah是否会出现ff

方法2:使用XLAT指令

data segmentorg 0000htable db 1,4,9,16,25,36,49,64,81,100,121,144,169,196,225num db 15square db 0msg db 'not find$'org 0040hresult db 0
data ends
code segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov cx,15lea bx,tablemov al,numMUL nummov square,almov al,0find:mov dl,squaremov ah,al;save alxlatcmp al,dljz  outresmov al,ahINC alloop findmov ah,9mov dx,offset msgint 21hjmp doneoutres:mov dl,almov result,dljmp donedone:mov ah,4chint 21hcode endsend start

实验三:比较字符串MATCH。

试编写一程序:比较两个字符串STRING1和STRING2所含的字符是否相同。若相同则显示‘MATCH’,否则显示‘NO MATCH’。

使用串操作比较字符串

data segmentstr1 db 512 dup('$')len  equ $-str1            ;获取str1的长度str2 db 512 dup('$')OBUF1 DB '>','input first string:',0DH,0AH,'$';显示提示符并将光标移至下一行行首,0DH,0AH用来回车换行OBUF2 DB '>','input second string:',0DH,0Ah,'$';输入第二个字符串输入提示并将光标移至下一行行首OBUF3 DB '>Compare result:',0DH,0AH;显示比较结果matc db 'MATCH$'nomh db 'NO MATCH$'
data endscode segment
assume ds:data,cs:code
start:mov ax,datamov ds,axmov es,ax;把常量数据存到ES,DS用来接收字符串mov cx,len            ;设置循环次数为str1的长度mov di,offset str1;设置ES偏移地址mov si,offset str2;设置DS偏移地址cldMOV DX,OFFSET OBUF1;输入第一个字符串提示,显示提示符>并回车换行MOV AH,9;调用dos 9号功能显示字符INT 21H;21号软中断,使程序等待输入mov ah,0ah          ;输入第一个字符串,调用DOS10号(a)系统功能mov dx,offset str1int 21hmov ah,02h         ;回车换行mov dl,0dhint 21hmov dl,0ahint 21hMOV DX,OFFSET OBUF2;输入第二个字符串提示,显示提示符>并回车换行 MOV AH,9;调用dos 9号功能显示提示字符INT 21H;21号软中断,使程序等待输入mov ah,0ah            ;输入第二个字符串,调用DOS 10号(a)系统功能mov dx,offset str2int 21hmov ah,02h            ;回车换行mov dl,0dhint 21hmov dl,0ahint 21hrepz cmpsb           ;串比较,当前字符相同则继续循环,寻址方式规定为寄存器间接寻址:源操作数隐含为数据段(在前),偏移地址由寄存器SI指明,允许段跨越;目标操作数(在后)隐含 为附加段,偏移地址由寄存器DI指明,不允许段跨越jz matchjnz nomchmatch:               ;字符串相同则显示matchmov ah,09hmov dx,offset matcint 21hjmp donenomch:             ;字符串不同则显示Nomatchmov ah,09hmov dx,offset nomhint 21hjmp donedone:                ;返回DOS操作系统mov ah,4chint 21hcode ends
end start

逐个字符进行比较

data segmentlen1 db 0len2 db 0str1 db 50 dup('$')str2 db 50 dup('$')msg1 db 'input first str:',0dh,0ah,'$'msg2 db 'input seconde str:',0dh,0ah,'$'res1 db 'match$'res2 db 'no match$'
data ends
code segmentassume cs:code,ds:data
start:mov ax,datamov ds,axmov ah,9mov dx,offset msg1int 21hlea bx,str1inputstr1:mov ah,1int 21hcmp al,0dhjz str2preINC len1mov [bx],alINC bxjmp inputstr1str2pre:;输入第二个字符串做准备mov ah,9mov dx,offset msg2int 21hlea bx,str2jmp inputstr2inputstr2:;输入第二个字符串mov al,0mov ah,1int 21hcmp al,0dhjz cmpstrlenINC len2mov [bx],alINC bxjmp inputstr2cmpstrlen:;先比较字符串长度mov al,len1cmp al,len2jnz nomatchlea bx,str1lea si,str2jz cmpstringcmpstring:;长度相等比较字符串内容mov dl,[si]cmp [bx],dljnz nomatchDEC len1INC bxINC sicmp len1,0jz matchmatch:mov ah,2mov dl,0dhint 21hmov dl,0ahint 21hmov ah,9mov dx,offset res1int 21hjmp donenomatch:mov ah,2mov dl,0dhint 21hmov dl,0ahint 21hmov ah,9mov dx,offset res2int 21hjmp done
done:mov ah,4chint 21h
code ends
end start

实验四:统计学生成绩RESULT

设有10个学生的成绩分别为56,69,84,82,73,88,99,63,100,80分。试编写程序分别统计低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数,并分别存放到S5、S6、S7、S8、S9、S10单元中。

data segments5 dw 0s6 dw 0s7 dw 0s8 dw 0s9 dw 0s10 dw 0cnt dw 0;计数器scr dw 56,69,84,82,73,88,99,63,100,80data endscode segment
assume DS:data,CS:code;
start:mov ax,datamov ds,axlea bx,scrgetsc:  cmp cnt,10jz  donemov dx,[bx]cmp dx,100jz count100;100分cmp dx,60jl  countl60jge count6069;大于60;统计小于60
countl60:INC s5INC bx;两个字节,要加2INC bx;INC cnt;JMP getsc;统计60-69
count6069:cmp dx,70JGE  count7079;大于69,跳转INC s6INC bxINC bxINC cntJMP getsc;统计70-79
count7079:cmp dx,80JGE  count8089;大于等于80,跳转INC s7INC bxINC bxINC cnt  JMP getsc;统计80-89
count8089:cmp dx,90JGE count9099INC s8INC bxINC bxINC cnt  JMP getsc;统计90-99
count9099:cmp dx,99JG count100INC s9INC bxINC bxINC cnt  JMP getsc
;统计100
count100:INC s10INC bx;INC bx;INC cnt JMP getsc
done:mov ah,4chint 21h
code ends
end start

另一种做法:

data segments5 db 0s6 db 0s7 db 0s8 db 0s9 db 0s10 db 0score db 56,69,84,82,73,88,99,63,100,80h1 db 's5:$'h2 db 's6:$'h3 db 's7:$'h4 db 's8:$'h5 db 's9:$'h6 db 's10:$'
data ends
code segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea bx,scoremov cx,10func:cmp cx,0jz donemov al,60cmp [bx],aljl countlw60mov al,70cmp [bx],aljl count6069mov al,80cmp [bx],aljl count7079mov al,90cmp [bx],aljl count8089mov al,100cmp [bx],aljl count9099jz count100countlw60:INC s5INC bxDEC cxjmp funccount6069:INC s6INC bxDEC cxjmp funccount7079:INC s7INC bxDEC cxjmp funccount8089:INC s8INC bxDEC cxjmp funccount9099:INC s9INC bxDEC cxjmp funccount100:INC s10INC bxDEC cxjmp funcdone:mov ah,4chint 21h
code endsend start

实验五:成绩排名

设有10个学生的成绩分别为88,75,95,63,98,78,87,73,90,60分。试编写程序分别排出他们的名次,并分别存放到后续的10个单元中。

算法:冒泡排序

;学生成绩排序
data segmentscore  db 88,75,95,63,98,78,87,73,90,60shang db 0;输出结果时使用的中间变量,商yu    db 0 ;输出结果时使用的中间变量,余数posi  db 49;输出结果时使用的中间变量,排名ASCIIcnt1 dw 0hcnt2 dw 9h;endstr db '$'msg1 db 'score is: $'msg2 db 'ranking is: $'space db '  $';两个空格 positmp1 db 0;排名大于10处理用的临时变量positmp2 db 0;排名大于10处理用的临时变量
data ends
code segmentassume CS:code,DS:datastart:mov ax,datamov ds,axlea bx,scoreoutloop:;冒泡排序外循环cmp cnt1,0ahjz restostrpre;转到准备输出jmp innerloopinnerloop:;冒泡排序内循环mov ax,cnt2cmp ax,cnt1jle chgindexmov cx,bx;暂存bx的值mov si,bxadd si,cnt1add bx,cnt2mov dl,[bx]cmp dl,[si] jg  changeposi ;后大于前交换位置DEC cnt2     ;没有则检查下一个mov bx,cxjmp innerloopchangeposi:;互换位置mov dh,[si]mov dl,[bx]mov [si],dlmov [bx],dhmov bx,cx ;还原bxDEC cnt2jmp innerloopchgindex:INC cnt1mov cnt2,9hjmp outlooprestostrpre:;数字转为字符串输出准备mov cx,10;设置循环次数lea bx,scorejmp outputresoutputres:;输出排序结果mov al,[bx]cbw;拓展al为16位mov dl,10div dlmov shang,al;商add shang,48;ascii转换mov yu,ah;余数add yu,48mov ah,2;回车换行mov dl,0dhint 21hmov dl,0ahint 21h;提示信息1mov ah,9mov dx,offset msg1int 21hmov ah,2;输出成绩mov dl,shangint 21hmov dl,yuint 21h;输出空格mov ah,9mov dx,offset spaceint 21h;提示信息2mov ah,9mov dx,offset msg2int 21h;输出排名cmp posi,57;排名大于10jg  divposi;另外处理mov ah,2mov dl,posiint 21hmov ah,2;回车换行mov dl,0dhint 21hmov dl,0ahint 21hINC posi;排名增大 INC bxloop outputresjmp donedivposi: ;处理排名大于10的情况sub posi,48;ascii转数字mov al,posicbw ;拓展almov dl,10div dl mov positmp1,al;商add positmp1,48;ascii转换mov positmp2,ah;余数add positmp2,48mov ah,2mov dl,positmp1int 21hmov dl,positmp2int 21hjmp donedone:mov ah,4chint 21hcode endsend start

冒泡排序

data segmentscore db 88,75,95,63,98,78,87,73,90,60cnt1 db 0cnt2 db 0
data ends
code segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea bx,scoreoutloop:;冒泡外层循环mov dl,10mov dh,cnt1cmp dh,dljz outresprejmp inlooppreinlooppre:;冒泡内层循环准备mov si,bxINC simov dl,cnt1INC dlmov cnt2,dlinloop:;冒泡内层循环mov dl,cnt2mov dh,10cmp dl,dhjz chgindexmov al,[bx]cmp [si],aljg chgscoreINC siINC cnt2jmp inloopchgindex:INC bxINC cnt1jmp outloopchgscore:mov dh,[si]mov dl,[bx]mov [si],dlmov [bx],dhINC cnt2INC sijmp inloopoutrespre:;输出成绩到后续的10个单元中做准备mov cx,10lea si,scorejmp outresoutres:;输出成绩到后续的10个单元mov dl,[si]mov [bx],dlINC bxINC siloop outresjmp donedone:mov ah,4chint 21hcode endsend start

实验六:响铃输入

要求完成从键盘输入字符,若输入的是数字N,则响铃N次。如输入不是数字,则不响铃。 (注意:使用dosbox运行该程序时不会有声音,也许是系统原因)

data segmentbellnum db 8 dup(0);最大输入为100msg db 'input error$'cnt db 0bellcnt db 0k   db 1;数字转换时的位数,1,10,100 n1  db 0;10或百位n2  db 0;个位hint db '>input the bell count',28h,'less than 100',29h,':$'
data ends
code SEGMENTassume cs:code,ds:data
start:mov ax,datamov ds,axlea bx,bellnum  ;提示信息mov ah,09hmov dx,offset hintint 21h
input:mov ah,1;输入字符int 21hcmp al,48;检查字符jl inperrcmp al,57jg inperrjmp getnumgetnum:;输入的字符数字ascii码转换sub al,48mov [bx],alINC cntINC bxjmp inputinperr:;输入错误cmp cnt,0;如果输入的是回车,并且cnt大于0,说明输入结束jg prepmov ah,9mov dx,offset msgint 21hjmp doneprep:;统计响铃数目前的准备 mov al,cntcbw ;把cnt扩展mov cx,ax DEC bx;结束时bx多加了1jmp getbellcount
getbellcount:mov al,[bx]MUL kadd bellcnt,almov al,k ;k乘10mov ah,10MUL ahmov k,alDEC bx ;loop getbellcountmov al,bellcntcbw  mov cx,ax;设置响铃次数 jmp bellbell:;循环响铃;输出响铃序号mov ax,cxmov bl,10div bl ;除法取余和商mov n1,almov n2,ahadd n1,48;商的字符add n2,48;余数的字符mov ah,02h         ;回车换行mov dl,0dhint 21hmov dl,0ahint 21hmov ah,02hmov dl,n1;商int 21hmov ah,02hmov dl,n2int 21hMOV DL,07HMOV AH,2INT 21H    LOOP Belljmp donedone: MOV ah,4CHINT 21H
code endsend start
data segmenthint db 'input bell number(less than 100):$'bellnum db 0bellstr db 5 dup('$')cnt db 0k db 1
data ends
code segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov ah,9mov dx,offset hintint 21hmov ah,2mov dl,0dhint 21hmov dl,0ahint 21hlea bx,bellstrinputstr:mov ah,1int 21hcmp al,0dhjz getnumpremov [bx],alINC bxINC cntjmp inputstrgetnumpre:DEC bxmov al,cntcbwmov ah,0mov cx,axjmp getngetn:mov al,[bx]sub al,48mov dh,kMUL dhadd bellnum,almov al,kmov dh,10MUL dhmov k,alDEC bxloop getnjmp outpreoutpre:mov al,bellnum cbwmov ah,0mov cx,axmov ah,2mov dl,0dhint 21hmov dl,0ahint 21hjmp outresoutres:mov al,bellnumcbw ;注意,除法,16位除8位mov dl,10DIV dladd ah,48add al,48mov dh,ah mov ah,2mov dl,alint 21hmov dl,dhint 21hmov ah,2mov dl,0dhint 21hmov dl,0ahint 21hDEC bellnumloop  outresjmp donedone:mov ah,4chint 21hcode endsend start

实验七:子程序调用

从键盘输入字符串(包括数字,大写字母,小写字母,标点符号),要求调用子程序将其中的小写字母转换成大写字母,然后将结果输出。

data segmentinput db 100 dup('$')hint db 'input the str ',28h,'less than 100',29h,':$'outhint db 'string in uppercase:$'
data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea bx,input;输出提示mov ah,9mov dx,offset hintint 21h;回车换行mov ah,2mov dl,0ahint 21hmov dl,0ahint 21hinputstr:;输入字符mov ah,1;输入单个字符并回显,字符存在alint 21hcmp al,65;判断是否为大写jl judgeexitcmp al,90jg judgelw;是大写字母mov [bx],alINC bxjmp inputstrjudgelw:;判断为小写字母cmp al,97jl judgeexitcmp al,122jg inputstr;是小写字母sub al,32;ascii码转换mov [bx],alINC bxjmp inputstrjudgeexit:;判断是否输入的是回车,回车退出cmp al,0dhjz outstrpre;输出字符串jnz inputstroutstrpre:;输出字符串准备mov cx,bxlea bx,inputsub cx,bx;设置cx ;回车换行mov ah,2mov dl,0ahint 21hmov dl,0ahint 21h;输出提示信息mov ah,9mov dx,offset outhintint 21h;回车换行mov ah,2mov dl,0ahint 21hmov dl,0ahint 21hjmp outputstroutputstr:;输出字符串mov ah,2mov dl,[bx]int 21hINC bxloop outputstrjmp donedone:mov ah,4chint 21h
code endsend start

实验八: 找出两个等长字符串中第一个不相等字符的地址和内容

;找出两个字符串中第一个不相等字符的地址和内容
data segmentstr1 db 50 dup("$")str2 db 50 dup('$')len equ $-str1
data ends
code segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov es,axlea si, str1lea di, str2mov cx,lencld;清空方向标志位,按照地址增的方向修改地址;输入第一个字符串mov ah,10mov dx,offset str1int 21h;回车换行mov ah,2mov dl,0dhint 21hmov dl,0ahint 21h;输入第二个字符串mov ah,10mov dx,offset str2int 21h;比较字符串repe cmpsbjz donedec si;注意要减1,因为在不相等处多加了1dec dimov bx,simov al,[si]mov cl,[di]jmp donedone:mov ah,4chint 21hcode endsend start

实验九:输入一个字符串,再输入一个字符,统计该字符在字符串里出现的次数在屏幕上输出

; multi-segment executable file template.data segmentstring db 50endsstack segmentdw   128  dup(0)
endscode segment
start:
; set segment registers:mov ax, datamov ds, axmov es, axmov dx,offset stringmov ah,10int 21h mov ah,2mov dl,0dhint 21hmov dl,0ahint 21hmov ah,1int 21hmov bl,almov ah,2mov dl,0dhint 21hmov dl,0ahint 21h  mov al,bl lea bx,string+2mov cl,string+1mov dl,0find:cmp cl,0jz donecmp al,BYTE ptr [bx]jne next;注意,使用next的原因是inc和dec都会修改ZF标志位会使jne判断失效inc dldec clinc bxjmp findnext:dec clinc bxjmp finddone: ;输出出现的次数,次数小于10add dl,'0' mov ah,2int 21hmov ah, 4ch ; exit to operating system.int 21h
endsend start ; set entry point and stop the assembler.

实验十:用子程序实现将从键盘输入的一组字符串中的小写字母改为大写字母

data segmentstring db 30 dup('$')
data endscode segmentassume cs:code,ds:datamain proc farstart:mov ax,datamov ds,ax;输入字符串mov dx,offset stringmov ah,10int 21hmov ah,2mov dl,0dhint 21hmov dl,0ahint 21hcall trans;调用大小写转换子程序mov ah,9lea dx,string+2;注意不能用mov dx,offset string,int 21hmov ah,4chint 21h  main endp;大小写转换子程序trans proc nearlea si,string+2mov cl,string+1check:cmp cl,0jz donemov al,[si]cmp al,'Z'jl next1jg next2next1:dec clinc sijmp checknext2:sub al,'a'-'A'mov [si],aldec clinc sijmp checkdone:ret;子程序返回  trans endp
code ends end start

8086汇编上机实验相关推荐

  1. 汇编8086复习——基础知识、指令汇总、上机实验踩坑

    8086处理器基础知识 汇编语言是大小写不敏感的低级语言,意思就是mov和MOV是汇编语言来说是一样的,当然大小写混用也是可以的,如Mov 在8086汇编语言里,数字默认是十进制的,如果是其他进制数字 ...

  2. 微机原理8086汇编语言上机——Masm环境搭建与常用汇编调试指令

    学校的微机原理与接口技术课,最近开始 考古 上机实验了. 1.弯路 为什么不用宇宙最强大的IDEL--Visual Studio呢? 在我的Visual Studio专栏中有一篇文章介绍Visual ...

  3. 8086汇编学习小记-王爽汇编语言实验12

    8086汇编学习小记-王爽汇编语言实验12 0号中断处理程序,开始安装在0000:0200处的程序最后用死循环导致显示不出'divided error',改成直接退出就正常显示了.注意修改ss,sp之 ...

  4. c++ 模板类实现堆栈实验报告_编译原理——小型类C编译器的设计和实现(生成8086汇编代码)之1:问题定义以及总体功能...

    前面花了两篇文章来介绍词法分析和语法分析,接下来才是比较有意思的部分--一个小型类C编译器的设计和实现(其实是编译原理的课程设计啦!~)我用的是python2.7.13+PyQt来做的...事实上,正 ...

  5. 8086汇编实验(十题可用)

    一.前言 1.这学期学8086汇编,所做的四次实验十个题目(前8手写,后2摘录后修改,时间久远未找到原文链接,愿理解),亲测可用,码住,希望能对将来的读者有所帮助. 2.有的需要在debug中根据段地 ...

  6. 合肥工业大学2021汇编语言程序设计上机实验一

    实验一  基本汇编程序设计 实验目的 1.熟悉在PC机上建立.汇编.连接.调试和运行8086/8088汇编语言程序的过程: 2.掌握基本汇编语言程序设计方法. 3.熟悉DOSBOX下运行dos程序方法 ...

  7. 《汇编语言》上机实验内容//理解

    [实验目标要求] <汇编语言>是计算机科学与技术专业必修的专业基础课程.汇编语言程序设计实验的目标是学习汇编语言程序设计的基本方法和技能,熟练掌握用汇编语言设计.编写.调试和运行程序的方法 ...

  8. 汇编语言——第1次上机实验

    准备: 硬件:pc机,32位win操作系统,能够运行dos,某些64位win10系统可能会不支持 软件:masm程序 实验内容: 1.win+r运行dos,cd到指定的masm目录(为了调试方便,所有 ...

  9. 南京邮电大学微型计算机原理与接口技术实验,南京邮电大学《微机原理与接口技术》上机实验参考答案(四次全).pdf...

    南京邮电⼤学 <微型计算机原理与接⼝技术> 上机实验 汇编语⾔参考程序(四次全) 1 第⼀次 • 实验 1.3.1 "排除语法错误" • 实验 3.1.1 " ...

最新文章

  1. SQL Server主从数据库同步方式及同步问题解决方案总结
  2. SharePoint中的列表(List) 与Content Type 之五
  3. 【原创】sharepoint webpart COPY部署的办法
  4. 用Socket 打造跨语言跨操作系统的网络MORPG游戏(三)
  5. mysql查找最大值最小值_查找两个8位数字的最大值| 8086微处理器
  6. 密码学专题 文本数据库
  7. 论文解读丨文档结构分析
  8. 《天天数学》连载24:一月二十四日
  9. js中自执行函数(function(){})()和(function(){}())区别
  10. CVE-2015-1635(MS15-034 )进行DOS攻击
  11. js生成vCard,以及格式参数详细说明
  12. Django从入门到放弃
  13. 【loj6307】「雅礼国庆 2017 Day1」Clique 贪心
  14. java 快速排序流程图_java简单快速排序实例解析
  15. vscode字体字型设置_vscode怎么更换字体
  16. 极品抓鸡36课------8080端口入侵笔记
  17. redis指定配置文件启动不生效_redis配置文件不生效
  18. 苹果手机各种尺寸详细表苹果X、苹果XS、苹果XR、苹果XSMax、苹果11、苹果11 Pro、苹果 11 Pro Max 、苹果12、苹果12mini、苹果 12 Pro Max、苹果12pro 尺寸
  19. android cpu调度策略_最完整的Android CPU模式设置和功能
  20. c语言26字母排序,C语言,26个字母的冒泡排序

热门文章

  1. 三种近场通信的特点及未来分析与预测
  2. DOA估计 最大似然法(确定性最大似然法,随机性最大似然法)
  3. 放开那三国2祝福语讯飞输入法文件处理
  4. LLDB(一):入门指南
  5. 给中级程序员突破瓶颈的几大建议!让你秒变大牛!(建议收藏)
  6. 浅谈Android手机终端客户端的适配测试
  7. CAD 安装错误1625(1603):系统策略禁止这个安装,请与系统管理`员联系。如何解决方法
  8. 为什么说ERP提升了决策层的决策能力?
  9. 关于onscroll函数兼容各浏览器的方法分析
  10. 在Linux下进行jre环境配置(以JDK1.7.0_79为例)