Advertisement
Guest User

Assembler

a guest
Nov 21st, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. // lab1.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5.  
  6. using namespace std;
  7. int main()
  8. {
  9. //unsigned char x=1;
  10. unsigned char licz = 0;
  11. unsigned char y = 15;
  12. __asm {
  13. //zad1
  14. //11100
  15. //XOR AL, AL
  16. //XOR AH, AH
  17. //MOV AH, x
  18. //SHL AH, 2
  19. //ADD AL, AH
  20. //SHL AH, 1
  21. //ADD AL, AH
  22. //SHL AH, 1
  23. //ADD AL, AH
  24. //MOV y, AL
  25. //zad2
  26. //XOR AL, AL
  27. //XOR AH, AH
  28. //MOV AH, x
  29. //SHL AH, 5
  30. //MOV AL, AH
  31. //SHR AH, 3
  32. //SUB AL, AH
  33. //MOV y, AL
  34. //zad3
  35. //XOR BX, BX
  36. //XOR AL, AL
  37. //XOR AX, AX
  38. //MOV AL, x
  39. //SHL AX, 5
  40. //MOV BX, AX
  41. //SHR AX, 3
  42. //SUB BX, AX
  43. //MOV y, BX
  44. //while(y!=5)y+=1
  45. /*XOR EAX, EAX
  46. MOV EAX, y
  47. petla:
  48. CMP EAX, 5
  49. JZ koniec
  50. ADD EAX, 1
  51. JNZ petla
  52. koniec:
  53. MOV y, EAX*/
  54. /*XOR EAX, EAX
  55. XOR EDX, EDX
  56. MOV EAX, y
  57. petla :
  58. SUB EDX, 5
  59. JZ koniec
  60. ADD EAX, 1
  61. MOV EDX, EAX
  62. JNZ petla
  63. koniec :
  64. MOV y, EAX*/
  65. /*XOR EAX, EAX
  66. MOV EAX, y
  67. petla:
  68. ADD EAX, 1
  69. CMP EAX, 5
  70. JZ koniec
  71. JMP petla
  72. koniec:
  73. MOV y, EAX*/
  74.  
  75. /*//Zad 5
  76. //b7b6b5b4b3b2b1b0
  77. //b6b7b4b5b2b3b0b1
  78. XOR AH, AH
  79. XOR AL, AL
  80. MOV AH, y
  81. MOV AL, y
  82. //76543210
  83. //10101010
  84. //01010101
  85. AND AL, 0xAA
  86. AND AH, 0x55
  87. SHR AL, 1
  88. SHL AH, 1
  89. OR AL, AH
  90. MOV y, AL*/
  91.  
  92. //Zad 6
  93. /*XOR AH, AH
  94. XOR AL, AL
  95. //if(AL&0x01) licz+=1
  96. MOV AL, 0
  97. MOV AH,y
  98. AND AH,0x01
  99. ADD AL, AH
  100. SHR y,1
  101.  
  102. MOV AH, y
  103. AND AH, 0x01
  104. ADD AL, AH
  105. SHR y, 1
  106.  
  107. MOV AH, y
  108. AND AH, 0x01
  109. ADD AL, AH
  110. SHR y, 1
  111.  
  112. MOV AH, y
  113. AND AH, 0x01
  114. ADD AL, AH
  115. SHR y, 1
  116.  
  117. MOV AH, y
  118. AND AH, 0x01
  119. ADD AL, AH
  120. SHR y, 1
  121.  
  122. MOV AH, y
  123. AND AH, 0x01
  124. ADD AL, AH
  125. SHR y, 1
  126.  
  127. MOV AH, y
  128. AND AH, 0x01
  129. ADD AL, AH
  130. SHR y, 1
  131.  
  132. MOV AH, y
  133. AND AH, 0x01
  134. ADD AL, AH
  135. SHR y, 1
  136.  
  137. MOV BL,8
  138. SUB BL,AL
  139. MOV y,BL*/
  140.  
  141.  
  142. /*MOV AH,y
  143. AND AH, 0x01
  144. SUB AH, 0x01
  145. JNZ przeskocz_prawda
  146. ADD AL, 1
  147. przeskocz_prawda:
  148.  
  149. MOV AH, y
  150. AND AH, 0x02
  151. SUB AH, 0x02
  152. JNZ przeskocz_prawda1
  153. ADD AL, 1
  154. przeskocz_prawda1:
  155.  
  156. MOV AH, y
  157. AND AH, 0x04
  158. SUB AH, 0x04
  159. JNZ przeskocz_prawda2
  160. ADD AL, 1
  161. przeskocz_prawda2:
  162.  
  163. MOV AH, y
  164. AND AH, 0x08
  165. SUB AH, 0x08
  166. JNZ przeskocz_prawda3
  167. ADD AL, 1
  168. przeskocz_prawda3:
  169. MOV y, AL*/
  170.  
  171. //Zad 6
  172. /*XOR AL, AL
  173. XOR AH, AH
  174. XOR DL, DL
  175. MOV DL, 9//
  176. petla:
  177. MOV AL, y;
  178. SUB DL, 1//CMP DL, 8
  179. JZ koniec
  180. AND AL,0x01
  181. ADD AH, AL
  182. SHR y, 1
  183. //ADD DL, 1
  184. JMP petla
  185. koniec:
  186. MOV y, AH
  187. //00001111*/
  188.  
  189. //Zad 7
  190. //Sprawdzenie czy liczba jedynek jest parzysta
  191. /*XOR AL, AL
  192. XOR AH, AH
  193. XOR DL, DL
  194. petla:
  195. MOV AL, y;
  196. CMP DL, 8
  197. JZ koniec
  198. AND AL, 0x01
  199. ADD AH, AL
  200. ADD DL, 1
  201. SHR y, 1
  202. JMP petla
  203. koniec :
  204. AND AH, 0x01
  205. MOV DL, AH
  206. MOV y, DL
  207. //00000001
  208. //00000110 = 1*/
  209.  
  210. //Zad 8
  211. /*XOR AL, AL
  212. XOR BL, BL
  213. //00001111 = al=15
  214. //00000001 = 0x01 and
  215. //00000001
  216. MOV AL, y
  217. AND AL, 0x01
  218. SHL AL, 7
  219. OR BL, AL
  220.  
  221. MOV AL, y
  222. AND AL, 0x02
  223. SHL AL, 5
  224. OR BL, AL
  225.  
  226. MOV AL, y
  227. AND AL, 0x04
  228. SHL AL, 3
  229. OR BL, AL
  230.  
  231. MOV AL, y
  232. AND AL, 0x08
  233. SHL AL, 1
  234. OR BL, AL
  235.  
  236. MOV AL, y
  237. AND AL, 0x10
  238. SHR AL, 1
  239. OR BL, AL
  240.  
  241. MOV AL, y
  242. AND AL, 0x20
  243. SHR AL, 3
  244. OR BL, AL
  245.  
  246. MOV AL, y
  247. AND AL, 0x40
  248. SHR AL, 5
  249. OR BL, AL
  250.  
  251. MOV AL, y
  252. AND AL, 0x80
  253. SHR AL, 7
  254. OR BL, AL
  255.  
  256. MOV y, BL*/
  257.  
  258. //Zad 9 Zamiana bitow miejscami w danej kolejnosci
  259. XOR AL, AL
  260. MOV AL, y
  261. XOR BL, BL
  262. MOV BL, 0x80
  263. AND AL,
  264.  
  265.  
  266. }
  267. printf("%d", y);
  268.  
  269. getchar();
  270.  
  271. return 0;
  272. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement